Mostrando entradas con la etiqueta SAP. Mostrar todas las entradas
Mostrando entradas con la etiqueta SAP. Mostrar todas las entradas

lunes, 18 de julio de 2016

Habilitar guardar preliminarmente en solicitudes de pedidos

Para habilitar el gaurdado preliminarmente se debe realizar los siguientes pasos:

- Ejecutar transacción SFW5:
Esta transacción activa Business function, en nuestro caso necesitaremos activar LOG_MM_CI_3, para ello marcamos el check y activamos:
Una vez activado aparecerá la bombilla encendida:


- Ejecutamos la transacción de customizing SPRO:
Gestión de materiales>Compras>Datos de entorno>Activar registro de forma preliminar y retener en documento de compras y marcamos el flag Asig. prev. y marca act.

Una vez hecho esto ya podremos guardar de manera preliminar en las transacciones de la ME51N / ME52N.

NOTA: Es posible que genere un DUMP CX_SY_CONVERSION_OVERFLOW, para ello debes aplicar la nota 1833227.

En caso de querer guardar preliminarmente mediante BAPI (BAPI_PR_CREATE) debemos usar los siguientes campos:

MEMORY = X
Os detallo una tabla con las diferencias estre HOLD / PARK / GUARDADO

Hold
Park
Save
AC Commitment
MM Errors
X


Not Updated
FM Errors
X
X

Not Updated
No Errors
X
X
X
Updated


MEMORYTYPE = H o P (dependiendo qué hemos elegido, si Hold o Park).

También debemos marcar en la estructura BAPIMEREQHEADERX los flags corresponidiente a lo que hayamos rellenado en la primera.

NOTA: Esta configuración no evita que se determine estrategia y se lance WF, para ello debemos implementar la nota 575387.

miércoles, 15 de junio de 2016

Tablas de índice para evitar buscar en BSEG

Hemos visto a menudo muchos hilos abiertos sobre problemas en la tabla BSEG. Se invierte bastante tiempo en buscar datos directamente en la BSEG si no tenemos los campos clave apropiados. Aqui está la solución para eso. Dado que no es posible crear un índice secundario para tablas de clúster, SAP trajo el nuevo concepto llamado tablas ÍNDICE. 
Todos los documentos contables (abiertos y cerrados) se almacenan en la BKPF y BSEG y consultar estas tablas toma demasiado tiempo. Para ello SAP ha creado las tablas ÍNDICE para la BSEG que se actualizan con datos específicos basados en la clasificación y son más rapidos que la BSEG.
 Por ejemplo: documentos de clientes, documentos de vendedores, etc.

Tablas índices:
BSID - Contabilidad: índice secundario para Clientes (items abiertos).
BSAD - Contabilidad: índice secundario para Clientes (items borrados).
BSIK - Contabilidad: índice secundario para Vendedores (items abiertos).
BSAK - Contabilidad: índice secundario para Vendedores (items borrados).
BSIS - Contabilidad: índice secundario para Cuentas de Mayor (items abiertos).
BSAS - Contabilidad: índice secundario para Cuentas de Mayor (items borrados).

¿Cómo recordar estas tablas?
Recuerda BS*
 3ª letra indica si el item está abierto o cerrado.
I - para items abiertos.
A - para items cerrados.
4ª letra indica la clasificación.
D - Para clientes.
K - Para vendedores.
S - Para cuentas de mayor.

 Estas tablas son algunos ejemplos que se requieren sobre todo en escenarios de tiempo real. Hay unas pocas más de tablas ÍNDICE como estas.

martes, 14 de junio de 2016

Definir customizing para asignar ID de Workflow a un mandante

Cuando creas una tarea o incluso un workflow necesitas definir un ID en el mandante (si no está ya definido) para que todos los objetos comiencen con ese ID. La tabla que contiene estos datos es la T78NR. 

Para ello ejecutamos la SPRO:
Hacemos click en Nuevo he introducimos el prefijo.

Guardar y ya todos nuestros objetos de workflow se almacenarán con esta secuencia letras(WS para workflows, TS para tareas)+prefijo(991)+número. 


Desarrollar una aplicación simple usando los pasos "Decisión de usuario" y "Mail"

Terminología básica usada en workflow:

La deficinión de workflow es el conjunto de reglas que determina la ruta que sigue el proceso. Por ejemplo, cómo se procesa una solicitud de pedido, desde el principio hasta la creación del pedido. 

Una instancia de workflow, que a menudo se refiere simplemente al workflow, es una única ejecución del workflow. Por ejemplo, el procesamiento de una única solicitud de pedido para ordenadores.

Las tareas son los pasos en el proceso, que se tienen que ejecutar por alguien o automáticamente por el software. Por ejemplo, para validar la disponibilidad de repuesto de ordenadores en la compañía.

Los agentes son las personas que procesan las tareas (vía work items). Por ejemplo, el solicitante y un miembro del departamento de compras.

El container es el lugar donde se colecta todos los datos que se usan en el workflow.

El binding es el conjunto de reglas que define qué datos se pasan a qué parte del proceso.


Construir una aplicación simple de workflow

La herramienta central para la creación, visualización y procesamiento de un workflow es el workflow builder (transacción SWDD). Con el workflow builder puedes crear todos los componentes de un workflow, incluyendo todos los containers que necesites para conseguir los datos de un paso a otro. 

Generalmente, la mayoría de workflows se inician por un evento (por ejemplo, cuando se crea un material o cuando cuando llega una nueva solicitud de pedido). Defines qué datos necesitas pasar al workflow para este evento vía binding.

Sin embargo también puedes iniciar cualquier workflow directamente. Vamos a crear un workflow simple e iniciar el workflow directamente, usando las herramientas de test.

LLama a la transacción SWDD. Cuando se llama al workflow builder por primera vez, aparece una nueva creación de workflow. En cuyo caso puedes optar a crear un nuevo workflow pulsando "Crear workflow nuevo" (ctrl + shft + F5). Aparecerá la siguiente pantalla:




La pantalla inicial de workflow tiene las siguentes partes:

  • El principio de la definición del workflow, indicado por 
  • El fin de la definición del workflow, indicado por 
  • El área en la que insertas la nueva definición del workflow se indica por
Selecciona el paso indeterminado y selecciona "Crear..." o doble click en el paso indeterminado. Ahora entre los diferentes pasos elige la Decisión de Usuario haciendo doble click sobre él.
Ahora introduce el título de la decisión "Por favor toma una decisión". Introduce también los textos de decisión como Aprobar y Rechazar. Al pulsar enter, se cargan los valores por defecto de los textos pero puedes especificar tus propios nombres si quieres. Ahora necesitamos seleccionar el agente. El agente es la persona a quien se necesita mandar el work item... Dado que estamos empezando, podríamos hardcodear el nombre de usuario. Selecciona el Usuario de la lista e introduce el nombre de usuario a quien se le envía el work item. En general, este tipo de asignación de agente no se hace. Los agentes generalmente se asignan usando expresiones, reglas de asignación de agentes u objetos de organización (job, posición, etc).

Ahora selecciona  Tomar y al gráfico. Aparecerá la siguiente pantalla:



Ahora necesitamos incluir un paso de mail para enviárselo al solicitante. Ahora selecciona la linea "Aceptar" y haz click derecho. Se muestran diferentes opciones en el menú contextual. Selecciona Crear.

Ahora selecciona "Enviar correo electrónico" de la lista.
Ahora introduce el asunto y el cuerpo del mensaje del mail a enviar.

No cambies el contenido. Nuestro mail está destinado a las personas que lanzaron este workflow. &_WF_INITIATOR& contiene el valor de quien ejecutó el workflow. Dado que esto es un objeto test, estamos usando &_WF_INITIATOR&. Pero no usaríamos esta variable en escenarios reales. Hablaremos sobre esto en otros artículos.

Ahora selecciona  Tomar y al gráfico.
Aparece un popup pidiendo la abreviación y el nombre de esta tarea. Introduce lo mismo y presiona enter. (Si te da el error 5W023, lee el artículo Definir customizing para asignar ID de Workflow a un mandante).

Introduce el paquete local y pulsa enter.
Sigue los pasos del 5 hasta el 9 "Rechazar". Tendremos la siguiente imagen:
Pulsa Guardar para guardar la aplicación workflow. Necesitas introducir una abreviación y un nombre para tu workflow. Puedes cambiar cualquiera de estas cosas en cualquier punto. Después de guardar, se asigna un número empezando por WS, así:
Para ejecutar el workflow, actívalo usando el botón de activar.
Prueba el workflow pulsado verificar. Aparecerá la siguiente imagen:

Ahora elige Ejecutar para iniciar el workflow. Aparecerá la siguiente pantalla:


Elige entre aprobar, rechazar o mantener el work item en su inbox y tomar la decisión más adelante. Si eliges Aprobar o rechazar se enviará un mail al solicitante con el estatus de su solcitud.
En la transacción SBWP podremos ver los work item de nuestra bandeja:

Por Suresh Kumar Parvathaneni.
SAPTechnical

domingo, 12 de junio de 2016

Log de análisis Workflog en SAP

Analizar el log de un Workflow representa un papel muy importante especialmente cuando estás en un proyecto de mantenimiento. El análisis del log Workflow nos ayuda a encontrar la raíz de la causa y realizar un seguimiento del quid de cualquier problema encontrado en el ciclo del Workflow. 

En este blog veremos como proceder cuando se enfrenta un problema relacionado con la factura (MIR4) donde tenemos que realizar un seguimiento de quién es el agente responsable ¿Cuándo el agente responsable aprobó factura? ¿Diferentes reglas para identificar el agente actual? ¿Qué IDocs se desencadena? ¿Qué tipo de notificación se establece? Y así...

1. Ejecuta la tx MIR4 (Visualizar factura). Introduce el número de factura de la que quieres hacer el análisis y click en ver documento.


2. En la factura mostrada click en el objeto GOS (Generic Object Services)  àWorkflow à Resumen Workflow.

3. Tan pronto como hagas click en resumen Workflow aparecerá un popup mostrando los detalles del workflow de la factura. Ahora click  en visualizar log workflow.


4. Ahora verás la pantalla de log del workflow. Supongamos que quieres saber quiénes son exactamente los agentes actuales / posibles / excluidos, haz click en cualquier botón de Agentes que mostrará los respectivos agentes.  Un matiz a recordar aquí es que los Agentes Actuales se determinan la mayoría usando Reglas, Posiciones y Expresiones. El agente Actual debe ser uno de los agentes posibles menos los agentes excluidos. Puedes encontrar qué notificación pertenece al agente en la tx 'PPOSE' y en la tx 'SU01D' puedes encontrar los detalles de los agentes. Algunas veces surgirá la situación en la que tienes que depurar la Regla que se usa para determinar el agente actual a fin de encontrar el agente actual.


5. Si quieres saber el detalle técnico del workflow de la factura, click en el botón del contenido de la tabla.


6. Ahora verás el ID del Workflow que no es más que el id de la tarea que empieza con WS seguida de 8 dígitos y difrentes work items asociados con el workflow. Esta etiqueta Container es sólo un repositorio que guarda la información grabada de varios elementos relacionados con el Workflow. Puedes encontrar quien ha iniciado el workflow, qué objeto de negocio se usa, qué IDoc se crea y todos los elementos del container. Mira que los enlaces existen en todos los elementos del container.


7. Si quieres ver el diseño y configuraciones internas del workflow haz doble click en el ID de la Tarea WS90000117 o ejecuta también la tx 'SWDD' e introduce el ID de la Tarea y verás la deficinión del workflow.


8. Ahora doble click en cualquier paso del workflow para saber que objeto de negocio se usa para la tarea, los eventos que se lanzan y las reglas definidas para encontrar los agentes. En la sub-pantalla de reglas por defecto puedes encontrar las reglas usadas. El objeto de negocio estándar 'BUS2012' se usa comúnmente para las facturas.


9. Supongamos que necesitas ejecutar un work item en particular de un workflow entonces ejecuta la tx 'SWIA' y proporciona el ID del work item y ejecuta.


10. Después de ejecutar, verás la siguiente pantalla que muestra el estatus y el tipo de work item. Ahora puedes realizar las tareas administrativas como Reiniciar / Completar / Cancelar y así sucesivamente, para más información referida a cancelar un work item el artículo Diferencia entre borrado lógico y físico de un work item en workflow SAP.


Hablando sobre el tipo y estatus del work item
  • Hay básicamente 12 tipos de work items y puedes ver sólo 3 tipos de work items: Work Item de Diálogo (W),  Work Item Fecha Tope (D) y Work Item de Pool (A).
  • Hay 11 tipos de estatus de workflow. El estatus SELECTED dice que el work item en particular está reservado por el agente y que no hay otro agente posible que pueda ejecutar ese work item  (una vez que el agente reserva el work item, ese work item en particular desaparece del Inbox de los otros agentes).

Los pasos de arriba sólo son el camino para analizar el log de un workflow. La conclusión del análisis del workflow depende del tipo de problema y lo bien que lo afrontes.