Ko88 Función o Call transaction

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • ximena251
    Member
    • nov
    • 54

    #1

    Ko88 Función o Call transaction

    Hola, me gustaría saber si saben de una función para ejecutar la transacción KO88, ya que, tengo el siguiente código para la función:

    MOVE: c_hfca TO sl_auak-kokrs,
    sy-datum TO sl_auak-bzdat,
    w_perio TO sl_auak-BUPERIO,
    w_gjahr TO sl_auak-bugjahr,
    '1' TO sl_auak-co_vaart,
    w_perio TO sl_auak-perio,
    ' ' TO sl_control-testrun,
    'AUT' TO sl_auak-perbz,
    w_gjahr TO sl_auak-gjahr.


    ***Function to KO88. First time; automatic.
    CALL FUNCTION 'K_SETTLEMENT_SINGLE_PROCESS'
    EXPORTING
    I_OBJNR = sl_aux2-objnr
    I_AUAK = sl_auak
    I_CONTROL = sl_control
    IT_BEL_ALL = sl_bel.


    Pero me genera un dump de un Raise execption : No active, y no tengo idea a lo que se refiera.


    después el call transaction está así



    DATA : itg_bdcdata TYPE tab_bdcdata WITH HEADER LINE .


    PARAMETERS : p_aufnr TYPE aufnr ,
    p_bukrs TYPE bukrs .


    START-OF-SELECTION.

    PERFORM p_ko88 USING p_aufnr p_bukrs.

    END-OF-SELECTION.




    *----------------------------------------------------------------------*
    * Form P_KO88 *
    *----------------------------------------------------------------------*
    *----------------------------------------------------------------------*
    FORM p_ko88 USING w_aufnr TYPE aufnr
    w_bukrs TYPE bukrs .


    DATA : w_gjahr TYPE gjahr ,
    w_perio TYPE monat ,
    w_nom TYPE apq_grpn ,
    w_keep TYPE char1 ,
    w_mode TYPE char1 ,

    it_enq TYPE wlf_seqg3_tab WITH HEADER LINE.



    CALL FUNCTION 'BAPI_COMPANYCODE_GET_PERIOD'
    EXPORTING
    companycodeid = '0102'
    posting_date = sy-datum
    IMPORTING
    fiscal_year = w_gjahr
    fiscal_period = w_perio.
    * Si on trouve rien, on prend la date en cours.
    IF w_gjahr EQ space OR w_perio EQ space.
    MOVE : sy-datum+0(4) TO w_gjahr ,
    sy-datum+4(2) TO w_perio .
    ENDIF.


    * Nom du dossier.
    CONCATENATE 'OPCCR_'
    w_aufnr+6(6)
    INTO w_nom.


    **** Vérifie si on doit garder les dossiers.
    *** SELECT SINGLE low
    *** INTO w_keep
    *** FROM tvarvc
    *** WHERE name EQ 'ZCO_KO88_BATCH_KEEP'.
    *** IF sy-subrc NE space.
    *** CLEAR w_keep.
    *** ENDIF.


    MOVE '000004001040' TO w_aufnr.

    * Open Batch-input.
    PERFORM p_open_bdc.


    * Périmètre analytique.
    PERFORM p_bdc_dynpro USING 'SAPLSPO4'
    '0300'.
    PERFORM p_bdc_field USING 'BDC_OKCODE'
    '=FURT'.
    PERFORM p_bdc_field USING 'SVALD-VALUE(01)'
    'HFCA'.


    * Sauvegarde transaction.
    PERFORM p_bdc_dynpro USING 'SAPLKO71'
    '1000'.
    PERFORM p_bdc_field USING 'BDC_CURSOR'
    'LKO74-TESTlAUF'.
    PERFORM p_bdc_field USING 'BDC_OKCODE'
    '=AUSF'.
    PERFORM p_bdc_field USING 'LKO74-PERIO'
    w_perio.

    PERFORM p_bdc_field USING 'LKO74-GJAHR'
    w_gjahr.

    PERFORM p_bdc_field USING 'LKO74-VAART'
    1.
    PERFORM p_bdc_field USING 'LKO74-TESTLAUF'
    ' '.


    PERFORM p_bdc_field USING 'BCD_SUBSCR'
    'SAPLKOSM 0530BLOCK1'.

    PERFORM p_bdc_field USING 'CODIA-AUFNR'
    w_aufnr.
    *Structure for error message
    TYPES : BEGIN OF ty_s_error,
    msg_err(60) TYPE c,
    END OF ty_s_error.

    DATA:
    wa_path TYPE string ,
    wa_error TYPE string,
    wa_cnt TYPE i,
    "w_mode TYPE c,
    wa_cnt1(2) TYPE n,
    it_output type table of ty_s_error,
    wa_output like line of it_output.

    *Data decleration for Error Message
    DATA:
    t_msg TYPE TABLE OF bdcmsgcoll, " Collecting Error messages
    w_msg TYPE bdcmsgcoll,
    w_msg1(51).



    CALL TRANSACTION 'KO88' USING itg_bdcdata
    MODE 'A'
    UPDATE 'S'
    MESSAGES INTO t_msg.

    IF sy-subrc EQ 0.
    * Uploaded into the database
    WRITE :/ 'DATA UPLOADED IN TABLE EBAN...' .
    ELSE.
    * Error Found
    LOOP AT t_msg INTO w_msg WHERE msgtyp EQ 'E'.
    * Format Message
    CALL FUNCTION 'MESSAGE_TEXT_BUILD'
    EXPORTING
    msgid = w_msg-msgid
    msgnr = w_msg-msgnr
    msgv1 = w_msg-msgv1
    msgv2 = w_msg-msgv2
    msgv3 = w_msg-msgv3
    msgv4 = w_msg-msgv4
    IMPORTING
    message_text_output = w_msg1.


    wa_output-msg_err = w_msg1.
    ENDLOOP.
    ENDIF.

    Cuando se ejecuta no me quita el modo test y no lo ejecuta. ¿Alguien podría ayudarme?, por favor
    Los escritores somos seres heridos por ello creamos otra realidad
Trabajando...