Creación de un Idoc de Salida
Short Description
Download Creación de un Idoc de Salida...
Description
c ?
c Ú ???? ? ? ? ?? ? ?? ??PREQCR y el nombre del segmento E1BPEBANC. Comprobar que el tipo de mensaje exista, para ello se debe ingresar a la transacción we81. A veces el tipo de mensaje debe crearse, pero este no es el caso.
Ahora, para ver la relación entre tipo de mensaje y tipo base, se entra a la we82.
Ú ?
c ?
Con el tipo base encontrado en esa relación (Tipo base = PREQCR01) se entra a la WE30 y se obtienen los segmentos correspondientes a ese tipo Base
Si se da doble clic al nombre del segmento seleccionado se verá lo siguiente:
Ú ?
c ?
Si se ingresa a la SE11 con el nombre del tipo de segmento, se puede visualizar que es una estructura:
Y estos son los datos que se tienen que cargar en la tabla de datos del idoc de acuerdo a lo que requiera el requerimiento.
Ú ?
c ? El código a modo de orientación es el siguiente: Declaración de datos: TYPES: BEGIN OF tys_idoc. INCLUDE STRUCTURE edidc. TYPES: END OF tys_idoc . * Data DATA:
gt_comm_control LIKE edidc OCCURS 0 WITH HEADER LINE, gt_idoc_data LIKE edidd OCCURS 0 WITH HEADER LINE.
* Estructuras DATA:
gs_idoc_control TYPE tys_idoc, gs_e1bpebanc TYPE e1bpebanc.
* Constantes CONSTANTS: c_message_type TYPE edi_mestyp VALUE 'PREQCR',"Tipo mensaje c_base_idoc_type TYPE edi_idoctp VALUE 'PREQCR01', "Tipo Idoc c_invrev_segname(9) TYPE c VALUE 'E1BPEBANC'," Nombre segmento c_rcvprn TYPE edi_rcvprn VALUE 'LSMW'. "Interl.dest. Este dato lo deben dar *&---------------------------------------------------------------------* *& Form GENERAR_IDOC *&---------------------------------------------------------------------* FORM generar_idoc. * Llena los campos de control del IDOC. PERFORM llenar_campos_control_idoc. * Llena los campos de datos del idoc. PERFORM llenar_datos_idoc. * Llamar a la función Master IDoc Distribute PERFORM llamar_función. ENDFORM. " GENERAR_IDOC *&---------------------------------------------------------------------* *&---------------------------------------------------------------------* *& Form LLENAR_CAMPOS_CONTROL_IDOC *&---------------------------------------------------------------------* FORM llenar_campos_control_idoc. CLEAR gs_idoc_control. gs_idoc_control-doctyp = c_message_type. gs_idoc_control-mestyp = c_message_type. gs_idoc_control-idoctp = c_base_idoc_type. gs_idoc_control-serial = space. gs_idoc_control-direct = '1'. gs_idoc_control-serial = sy-datum. gs_idoc_control-serial+8 = sy-uzeit. gs_idoc_control-rcvprn = c_rcvprn. "Nro de interlocutor destinatario gs_idoc_control-rcvprt = 'US'. "Tipo interlocutor destinatario . Este dato lo deben dar ENDFORM. " LLENAR_CAMPOS_CONTROL_IDOC *&---------------------------------------------------------------------* *& Form LLENAR_DATOS_IDOC *&---------------------------------------------------------------------* FORM llenar_datos_idoc. CLEAR gs_eban. LOOP AT gt_eban INTO gs_eban. gt_idoc_data-segnam = c_invrev_segname. CLEAR gs_e1bpebanc. PERFORM eliminar_ceros_izq USING gs_eban-banfn CHANGING gs_e1bpebanc-preq_no.
Ú ?
c ? gs_e1bpebanc-preq_no+0(1) = c_nueve. gs_e1bpebanc-preq_item = gs_eban-bnfpo. gs_e1bpebanc-doc_type = gs_eban-bsart. gs_e1bpebanc-pur_group = gs_eban-ekgrp. gs_e1bpebanc-preq_date = gs_eban-badat. gs_e1bpebanc-material = gs_eban-matnr. gs_e1bpebanc-plant = gs_eban-werks. gs_e1bpebanc-store_loc = gs_eban-lgort. gs_e1bpebanc-quantity = gs_eban-menge. gs_e1bpebanc-unit = gs_eban-meins. gs_e1bpebanc-deliv_date = gs_eban-lfdat. * Transformar datos para ser leidos en 6.0 gs_e1bpebanc-des_vendor = gs_eban-lifnr. gs_e1bpebanc-fixed_vend = gs_eban-flief. * Se agrega 1 al campo purch_org. gs_e1bpebanc-purch_org = gs_eban-ekorg. * Según la descripción de la conversión, se agrega 1 al purch_org ADD 1 TO gs_e1bpebanc-purch_org. gt_idoc_data-sdata = gs_e1bpebanc. APPEND gt_idoc_data. ENDLOOP. ENDFORM.
" LLENAR_DATOS_IDOC
*&---------------------------------------------------------------------* *& Form LLAMAR_FUNCIÓN *&---------------------------------------------------------------------* FORM llamar_función. REFRESH: gt_comm_control. CLEAR gv_flag. CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' EXPORTING master_idoc_control = gs_idoc_control TABLES communication_idoc_control = gt_comm_control master_idoc_data = gt_idoc_data EXCEPTIONS error_in_idoc_control =1 error_writing_idoc_status =2 error_in_idoc_data =3 sending_logical_system_unknown = 4 OTHERS = 5. IF sy-subrc 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ELSE. COMMIT WORK. gv_flag = 'X'. ENDIF. ENDFORM.
" LLAMAR_FUNCIÓN
Una vez que se hace el envío del Idoc, se ingresará a la función we05 para visualizar el número de idoc generado y el status del mismo.
Ú ?
c ?
Análisis de errores en un Idoc de Salida. x ? - - - - - ?
Úrrores técnicos en el nivel de servicios ALÚ Pueden ocurrir los siguientes errores en el nivel de servicios ALE: £? £? £? £?
Error de sintaxis en el IDOC Ausencia de acuerdo entre interlocutores EDI El IDOC no se transfiere a RFC en la transmisión El IDOC no se transfiere a la aplicación a la hora de la recepción
Îe salida Úrror de sintaxis del IÎ Status del IÎ µ07¶ A la hora de transmitir o recibir IDOCs se verifica la sintaxis de cada uno. La sintaxis se determina cuando se define el IDOC, incluyendo: £? £? £?
los segmentos individuales de la clase de IDOC la relación entre cada segmento cuántos segmentos se pueden transmitir en un IDOC o con qué frecuencia se da un segmento individual en un IDOC
Una verificación de la sintaxis de un IDOC se puede activar en el acuerdo entre interlocutores EDI para una clase de IDOC y un determinado interlocutor, y nosotros recomendamos hacerlo así, particularmente para cualquier IDOC que haya creado usted mismo. De otra manera este error sólo se da, normalmente, en la ejecución de test. Los IDOCs incorrectos no pueden ser reparados, así que tienen que ser transmitidos otra vez, una vez se ha corregido la estructura del IDOC en el sistema SAP. Ausencia de acuerdo entre interlocutores ÚÎI o acuerdo erróneo Status del IÎ µ29¶ Para transmitir un IDOC desde SAP al subsistema se debe definir el proceso de salida de los acuerdos entre interlocutores EDI para la clase de IDOC (tipo de mensaje) y todos los interlocutores relevantes. Encontrará una descripción más exacta de los acuerdos entre interlocutores EDI en la documentación online para las Guías de implementación (IMG). Si no se puede determinar el interlocutor (subsistema) para el IDOC a ser transmitido, se seguirá el siguiente procedimiento: £? £?
actualizar los acuerdos entre interlocutores EDI todos los IDOCs para la transmisión se deben fijar para la retransmisión. Como este error ha activado un work item para la tarea estándar µALE/EDI: tratamiento de errores (de salida)¶ y lo ha enviado a la bandeja de entrada del usuario relevante, el IDOC erróneo se debe establecer para la siguiente transmisión desde la bandeja de entrada. En la transmisión siguiente el IDOC
Ú ?
c ? incorrecto se indica con status µ31¶ y se copia a uno nuevo que se mejora con datos del acuerdo entre interlocutores EDI y se transfiere a aRFC. Normalmente los errores en los acuerdos entre interlocutores EDI se dan en la ejecución de test. Úl IÎ no se transfiere a aRF en la transmisión Status del IÎ µ30¶ A pesar de que el acuerdo entre interlocutores EDI se haya actualizado el IDOC no se transfiere al aRFC, es decir, el IDOC se estructura pero no se envía. El subsistema relevante no tiene ninguna entrada abierta en la evaluación de operaciones RFC (SM58). A pesar de que el IDOC esté listo para la transmisión, tiene que estar controlado explícitamente. Esto tiene lugar mediante el informe RSEOUT00, que se puede planificar como un job periódico o iniciado directamente utilizando el menú de transporte * ] ]
] ]
] * ]
] * ]
.
Aquí se debería verificar el modo de salida para el IDOC relevante en el acuerdo entre interlocutores EDI. En el modo de salida µ2¶ el IDOC creado se transmite directamente, en µ4¶ los IDOCs se reúnen y se envían en dimensiones definidas de paquetes. recomendamos que los IDOCs no se transmitan directamente para el modo µ4¶. Normalmente el status µ30¶ en el IDOC sólo puede ocurrir si el modo de salida se fija en µ4¶.
Ú ?
View more...
Comments