Este Include esta formado por los siguientes FORM:
- abrir_sesion_BI
- rellenar_dynpro
- insertar_transaccion_BI
- cerrar_sesion_BI
*-----------------------------------------------------------------------
* FORM abrir_sesion_BI
*-----------------------------------------------------------------------
* Esta función abre la sesión de batch input. Si la sesión de batch
*input se ha ejecutado incorrectamente avisa al programa principal.
*-----------------------------------------------------------------------
* --> i_bdctab : Tabla de tipo bdcdata donde se almacena el contenido
* del batch input.
* --> p_sesion: Nombre de la sesión de batch input.
* --> p_fechin: Fecha a partir de la cual se puede procesar el b. input.
* por ejemplo: '19980603' equivale a bloquear hasta el 03/06/1998.
* <-- p_return: Devuelve un valor (sy_subrc) tal que notifica si la
* función se ha ejecutado correctamente (caso de valer 0).
*-----------------------------------------------------------------------
FORM ABRIR_SESION_BI USING P_SESION TYPE C P_FECHIN TYPE D CHANGING
VALUE(P_RETURN) TYPE I.
DATA: D_BATCHIN TYPE I.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = P_SESION
USER = SY-UNAME
HOLDDATE = P_FECHIN
KEEP = 'X'
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11.
IF SY-SUBRC = 0.
D_BATCHIN = 1.
ENDIF.
P_RETURN = SY-SUBRC.
ENDFORM.
*----------------------------------------------------------------------
* FORM rellenar_dynpro
*----------------------------------------------------------------------
*Esta función pretende facilitar la tarea del programador para rellenar
*los campos de la tabla interna de tipo BDCDATA.
*-----------------------------------------------------------------------
* --> i_bdctab: Tabla de tipo bdcdata donde se almecena el contenido del
* batch input.
* --> p_valor1: Corresponderá la valor del campo Start de la tabla
* interna. Puede tomar los siguientes valores 'X' o ' '.
* --> p_valor2: Puede indicar dos conceptos distintos dependiendo del
* valor que haya tomado p_valor1:
* p_valor1 ='X' => p_valor2 = Campo program de la tabla BDC_TAB
* p_valor1 =' ' => p_valor2 = campo Field name de BDC_TAB
* --> p_valor3: Puede inidicar dos valores distintos dependiendo del
* valor que haya tomado p_valor1:
* p_valor1 ='X' => p_valor3 = Screen de la tabla BDC_TAB
* p_valor1 =' ' => p_valor3 = Field Value de la tabla BDC_TAB
*-----------------------------------------------------------------------
FORM RELLENAR_DYNPRO TABLES I_BDCTAB STRUCTURE BDCDATA USING P_VALOR1
TYPE C P_VALOR2 TYPE C P_VALOR3 TYPE C.
CLEAR I_BDCTAB.
IF P_VALOR1 EQ 'X'.
MOVE: P_VALOR2 TO I_BDCTAB-PROGRAM,
P_VALOR3 TO I_BDCTAB-DYNPRO,
P_VALOR1 TO I_BDCTAB-DYNBEGIN.
ELSE.
MOVE: P_VALOR2 TO I_BDCTAB-FNAM,
P_VALOR3 TO I_BDCTAB-FVAL.
ENDIF.
APPEND I_BDCTAB.
ENDFORM.
*-----------------------------------------------------------------------
* FORM insertar_transacción_BI
*-----------------------------------------------------------------------
* Esta función transfiere los datos de la tabla BDC_TAB al fichero de
* cola, para poder ser más tarde procesado.
*-----------------------------------------------------------------------
* --> i_bdctab: Tabla de tipo bdcdata donde se almacena el contenido del
* batch input.
* --> p_codigo: Indicar el código de transacción para el que se ha gene-
* rado la sesión de batch input.
* <-- p_return: Devuelve el valor de sy-subrc.
*-----------------------------------------------------------------------
FORM INSERTAR_TRANSACCION_BI TABLES I_BDCTAB STRUCTURE BDCDATA USING
P_CODIGO TYPE C CHANGING VALUE(P_RETURN) TYPE I.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = P_CODIGO
TABLES
DYNPROTAB = I_BDCTAB
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
P_RETURN = SY-SUBRC.
REFRESH I_BDCTAB.
ENDFORM.
*-----------------------------------------------------------------------
* FORM cerrar_sesion_BI
*-----------------------------------------------------------------------
* Cierra la sesión de batch input.
*-----------------------------------------------------------------------
* --> i_bdctab: Tabla de tipo bdcdata donde se almacena el contenido del
* batch input.
* <--p_return: Devuelve el parámetro sy-subrc.
*----------------------------------------------------------------------
FORM CERRAR_SESION_BI TABLES I_BDCTAB STRUCTURE BDCDATA USING
P_RETURN TYPE I.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
P_RETURN = SY-SUBRC.
FREE I_BDCTAB.
ENDFORM.