Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

bdc problem for Tcode FBCJ...

Former Member
0 Likes
941

Hello Forum,

I have created a BDC for T-code FBCJ in order for the document to be posted.....

The problem with my program is that when line item is uploaded into the required fields and when the OK-CODE = SAVE.

It is popping up a Information window " please select at least one entry".

But where in the line item entered in the required fields is already selected.

After which when you click OK on the information window, the entered line item is erased.

below is the code for the required BDC:

-


MY CODE FOR THE BDC----


report ZFBCJ

no standard page heading line-size 255.

include bdcrecx1.

data: begin of it_data occurs 0,

transact_name(25),

h_payments(15),

gl_account(10),

POSITION_TEXT(50),

DOCUMENT_NUMBER(16),

ALLOC_NMBR(18),

KOSTL(19),

PRCTR(10),

TEXT1(50),

end of it_data.

parameters:p_FILE LIKE IBIPPARMS-PATH obligatory.

DATA: P1_FILE TYPE STRING.

data: it_data1 like it_data occurs 0 with header line.

----


  • AT Selection-screen

----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

FILE_NAME = P_FILE.

P1_FILE = P_FILE.

start-of-selection.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

filename = p1_file

  • FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • VIRUS_SCAN_PROFILE =

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

tables

data_tab = it_data

  • EXCEPTIONS

  • FILE_OPEN_ERROR = 1

  • FILE_READ_ERROR = 2

  • NO_BATCH = 3

  • GUI_REFUSE_FILETRANSFER = 4

  • INVALID_TYPE = 5

  • NO_AUTHORITY = 6

  • UNKNOWN_ERROR = 7

  • BAD_DATA_FORMAT = 8

  • HEADER_NOT_ALLOWED = 9

  • SEPARATOR_NOT_ALLOWED = 10

  • HEADER_TOO_LONG = 11

  • UNKNOWN_DP_ERROR = 12

  • ACCESS_DENIED = 13

  • DP_OUT_OF_MEMORY = 14

  • DISK_FULL = 15

  • DP_TIMEOUT = 16

  • OTHERS = 17

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

it_data1[] = it_data[].

perform open_group.

DATA: V_PAY(15) TYPE C.

LOOP AT IT_DATA1.

refresh bdcdata.

perform bdc_dynpro using 'SAPMFCJ0' '0100'.

perform bdc_field using 'BDC_OKCODE'

'=CHCJ'.

perform bdc_field using 'F_DISPLAY_PERIOD_LO'

'01.06.2010'.

perform bdc_field using 'F_DISPLAY_PERIOD_HI'

'30.06.2010'.

perform bdc_field using 'BDC_CURSOR'

'ISCJ_E_POSTINGS-TRANSACT_NAME(18)'.

perform bdc_dynpro using 'SAPMFCJ0' '0050'.

perform bdc_field using 'BDC_CURSOR'

'TCJ_C_JOURNALS-CAJO_NUMBER'.

perform bdc_field using 'BDC_OKCODE'

'=OK50'.

perform bdc_field using 'TCJ_C_JOURNALS-COMP_CODE'

'4100'.

perform bdc_field using 'TCJ_C_JOURNALS-CAJO_NUMBER'

'4120'.

perform bdc_dynpro using 'SAPMFCJ0' '0100'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'F_DISPLAY_PERIOD_LO'

'01.06.2010'.

perform bdc_field using 'F_DISPLAY_PERIOD_HI'

'30.06.2010'.

perform bdc_field using 'BDC_CURSOR'

'ISCJ_E_POSTINGS-TRANSACT_NAME(18)'.

perform bdc_field using 'ISCJ_E_POSTINGS-TRANSACT_NAME(18)'

it_data1-transact_name. " 'EXPENSES/GL'.

v_pay = it_data1-h_payments.

WRITE V_PAY TO V_PAY RIGHT-JUSTIFIED.

perform bdc_field using 'ISCJ_E_POSTINGS-H_PAYMENTS(18)'

v_pay. " '70.00'.

perform bdc_field using 'ISCJ_E_POSTINGS-GL_ACCOUNT(18)'

it_data1-gl_account. " '4140000'.

perform bdc_field using 'ISCJ_E_POSTINGS-POSITION_TEXT(18)'

it_data1-position_text. " 'test entry'.

perform bdc_field using 'ISCJ_E_POSTINGS-DOCUMENT_NUMBER(18)'

it_data1-document_number. "'cash pmt'.

perform bdc_field using 'ISCJ_E_POSTINGS-ALLOC_NMBR(18)'

it_data1-alloc_nmbr. " 'party name'.

perform bdc_field using 'ISCJ_E_POSTINGS-KOSTL(18)'

it_data1-kostl. " '41000100'.

perform bdc_field using 'ISCJ_E_POSTINGS-PRCTR(18)'

it_data1-prctr. " '4100'.

perform bdc_field using 'ISCJ_E_POSTINGS-TEXT1(18)'

it_data1-text1. " 'DFD'.

perform bdc_field using 'F_LINE_SEL(18)'

'X'.

perform bdc_dynpro using 'SAPMFCJ0' '0100'.

perform bdc_field using 'BDC_OKCODE'

'=SAVE'.

perform bdc_field using 'F_DISPLAY_PERIOD_LO'

'01.06.2010'.

perform bdc_field using 'F_DISPLAY_PERIOD_HI'

'30.06.2010'.

perform bdc_field using 'BDC_CURSOR'

'ISCJ_E_POSTINGS-TRANSACT_NAME(18)'.

*perform bdc_field using 'F_LINE_SEL(18)'

  • 'X'.

******************NEW DATA*****************************

perform bdc_field using 'ISCJ_E_POSTINGS-TRANSACT_NAME(18)'

it_data1-transact_name. " 'EXPENSES/GL'.

v_pay = it_data1-h_payments.

WRITE V_PAY TO V_PAY RIGHT-JUSTIFIED.

perform bdc_field using 'ISCJ_E_POSTINGS-H_PAYMENTS(18)'

v_pay. " '70.00'.

perform bdc_field using 'ISCJ_E_POSTINGS-GL_ACCOUNT(18)'

it_data1-gl_account. " '4140000'.

perform bdc_field using 'ISCJ_E_POSTINGS-POSITION_TEXT(18)'

it_data1-position_text. " 'test entry'.

perform bdc_field using 'ISCJ_E_POSTINGS-DOCUMENT_NUMBER(18)'

it_data1-document_number. "'cash pmt'.

perform bdc_field using 'ISCJ_E_POSTINGS-ALLOC_NMBR(18)'

it_data1-alloc_nmbr. " 'party name'.

perform bdc_field using 'ISCJ_E_POSTINGS-KOSTL(18)'

it_data1-kostl. " '41000100'.

perform bdc_field using 'ISCJ_E_POSTINGS-PRCTR(18)'

it_data1-prctr. " '4100'.

perform bdc_field using 'ISCJ_E_POSTINGS-TEXT1(18)'

it_data1-text1. " 'DFD'.

perform bdc_field using 'F_LINE_SEL(18)'

'X'.

perform bdc_field using 'BDC_OKCODE'

'=save'.

**************END NEW DATA*****************************

perform bdc_dynpro using 'SAPMFCJ0' '0100'.

perform bdc_field using 'BDC_OKCODE'

'=POST'.

perform bdc_field using 'F_DISPLAY_PERIOD_LO'

'01.06.2010'.

perform bdc_field using 'F_DISPLAY_PERIOD_HI'

'30.06.2010'.

perform bdc_field using 'BDC_CURSOR'

'ISCJ_E_POSTINGS-TRANSACT_NAME(18)'.

*perform bdc_field using 'F_LINE_SEL(14)'

  • 'X'.

perform bdc_transaction using 'FBCJ'.

ENDLOOP.

perform close_group.

Edited by: santosh reddy.k on Mar 11, 2011 10:16 AM

4 REPLIES 4
Read only

Former Member
0 Likes
699

Hello Forum,

Sorry for the inconvenience with the post... this is my first post so didn't know how post it properly... please bear with it.

Read only

Former Member
0 Likes
699

Hello Forum,

Sorry for the inconvenience with the post... this is my first post so didn't know how post it properly... please bear with it.

Read only

RaymondGiuseppi
Active Contributor
0 Likes
699

- Did you check BAPI_CASHJOURNALDOC_CREATE Save FI Cash Journal Documents ?

- Look at the right side use your code here (without the spaces) There is also a limit of character in a post/code (2500 or 5000), so

Please only post the relevant code parts or trace sections!

Regards,

Raymond

Read only

Former Member
0 Likes
699

FBCJ Upload : Updating sucessfully

Below is my code ::

FBCJ Upload : Updating sucessfully , use this code

        no standard page heading line-size 255.

****************************************************** Data Declaration 1 *********Begin Of

data: begin of IT_FBCJ occurs 0,

       BUDAT type ISCJ_E_POSTINGS-POSTING_DATE,

       BLDAT type ISCJ_E_POSTINGS-DOCUMENT_DATE,

       BUKRS type TCJ_C_JOURNALS-COMP_CODE,

       CJNR  type TCJ_C_JOURNALS-CAJO_NUMBER,

       TRAN type TCJ_TRANSACTIONS-TRANSACT_NUMBER,

       AMT(16),

       DOCNR type ISCJ_E_POSTINGS-DOCUMENT_NUMBER,

       KOSTL type ISCJ_E_POSTINGS-KOSTL,

       PRCTR type ISCJ_E_POSTINGS-PRCTR,

       TEXT  type ISCJ_E_POSTINGS-POSITION_TEXT,

       PERNR type ISCJ_E_POSTINGS-PERNR,

       CURRENCY type BAPI_CJ_HEADER-CURRENCY ,

       end of IT_FBCJ.

data:  BDCDATA type table of BDCDATA with header line,

        IT_BDCMSGCOLL type table of BDCMSGCOLL with header line,

        ITAB type table of ALSMEX_TABLINE with header line.

data: HEADER    type BAPI_CJ_HEADER,

       HEADER1   TYPE TCJ_C_JOURNALS ,

       ITEMS     type table of BAPI_CJ_ITEMS with header line,

       ITEMS1     type table of ISCJ_POSTINGS with header line,

       TCJ       TYPE TABLE OF TCJ_CPD with header line ,

       POSTING   TYPE TABLE OF ISCJ_POSTINGS WITH HEADER LINE ,

       TAX       TYPE TABLE OF TCJ_WTAX_ITEMS WITH HEADER LINE ,

       IT_RETURN type BAPIRET2   occurs 0 with header line.

data: V_COUNT(2) type N,

       V_FLD(25)  type C,

       V_NUMBER   type BAPI_CJ_HEADER-CAJO_NUMBER,

       V_GJAHR    type BAPI_CJ_KEY-FISC_YEAR,

       V_POSTNO   type BAPI_CJ_KEY-POSTING_NUMBER,

       CURR type BAPI_CJ_HEADER-CURRENCY .

****************************************************** Data Declaration 1 *********End Of

****************************************************** Data Declaration 2 *********Begin Of

*&----

**&

**&        SELECTION-SCREEN

*&----

selection-screen : begin of block B1 with frame title TEXT-001.

parameters       : P_FILE type RLGRAP-FILENAME.

selection-screen : end of block B1.

*selection-screen : begin of block B2 with frame title TEXT-002.

*parameters       : R1 radiobutton group RAD1 default 'X',

*                   R2 radiobutton group RAD1.

*selection-screen : end of block B2.

*&----

**&

**&     AT SELECTION-SCREEN

*&----

at selection-screen on value-request for P_FILE.

   call function 'KD_GET_FILENAME_ON_F4'

     exporting

       PROGRAM_NAME  = SYST-REPID

       DYNPRO_NUMBER = SYST-DYNNR

     changing

       FILE_NAME     = P_FILE

     exceptions

       MASK_TOO_LONG = 1

       others        = 2.

   if SY-SUBRC <> 0.

   endif.

*

*&----

**&

**&     START-OF-SELECTION.

*&----

start-of-selection.

   perform UPLOAD.

   perform BAPI.

*  perform DATA_EXRACTION .

   perform DATA_EXRACTION1 .

   PERFORM BAPI_UPDATE .

*&----

**&

**&      END-OF-SELECTION.

*&----

end-of-selection.

*&----

**&      Form  UPLOAD

*&----

form UPLOAD .

   call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'

     exporting

       FILENAME                = P_FILE

       I_BEGIN_COL             = '1'

       I_BEGIN_ROW             = '3'

       I_END_COL               = '12'

       I_END_ROW               = '65536'

     tables

       INTERN                  = ITAB

     exceptions

       INCONSISTENT_PARAMETERS = 1

       UPLOAD_OLE              = 2

       others                  = 3.

   if SY-SUBRC <> 0.

   endif.

   loop at ITAB.

     case ITAB-COL.

       when '0001'.

         move ITAB-VALUE to IT_FBCJ-BUDAT.

       when '0002'.

         move ITAB-VALUE to IT_FBCJ-BLDAT.

       when '0003'.

         move ITAB-VALUE to IT_FBCJ-BUKRS.

       when '0004'.

         move ITAB-VALUE to IT_FBCJ-CJNR.

       when '0005'.

         move ITAB-VALUE to IT_FBCJ-TRAN.

       when '0006'.

         move ITAB-VALUE to IT_FBCJ-AMT.

       when '0007'.

         move ITAB-VALUE to IT_FBCJ-DOCNR.

       when '0008'.

         move ITAB-VALUE to IT_FBCJ-KOSTL.

       when '0009'.

         move ITAB-VALUE to IT_FBCJ-PRCTR.

       when '0010'.

         move ITAB-VALUE to IT_FBCJ-TEXT.

       when '0011'.

         move ITAB-VALUE to IT_FBCJ-PERNR.

       when '0012' .

         move itab-value to IT_FBCJ-CURRENCY .

     endcase.

     at end of ROW.

       append IT_FBCJ.

       clear  IT_FBCJ.

     endat.

   endloop.

   sort IT_FBCJ by BUDAT.

   loop at IT_FBCJ.

     if SY-TABIX eq 1.

       HEADER-COMP_CODE    = IT_FBCJ-BUKRS.

       HEADER1-COMP_CODE    = HEADER-COMP_CODE.

       HEADER-CAJO_NUMBER  = IT_FBCJ-CJNR.

       HEADER1-CAJO_NUMBER  = HEADER-CAJO_NUMBER.

       HEADER-REF_DOC_NO   = IT_FBCJ-DOCNR.

       HEADER-CURRENCY     =   IT_FBCJ-CURRENCY .

       HEADER1-CURRENCY     =  IT_FBCJ-CURRENCY .

       concatenate IT_FBCJ-BUDAT+4(4) IT_FBCJ-BUDAT+2(2) IT_FBCJ-BUDAT+0(2) into HEADER-PSTNG_DATE.

       concatenate IT_FBCJ-BLDAT+4(4) IT_FBCJ-BLDAT+2(2) IT_FBCJ-BLDAT+0(2) into HEADER-DOC_DATE.

     endif.

     V_COUNT = V_COUNT + 1.

     ITEMS-POSITION_NUMBER = V_COUNT.

     ITEMS-TRANSACT_NUMBER = IT_FBCJ-TRAN.

*    if R1 eq 'X'.

       ITEMS-P_PAYMENTS    = IT_FBCJ-AMT.

*    else.

*      ITEMS-P_RECEIPTS    = IT_FBCJ-AMT.

*    endif.

     ITEMS-COSTCENTER      = IT_FBCJ-KOSTL.

     ITEMS-PROFIT_CTR      = IT_FBCJ-PRCTR.

     ITEMS-POSITION_TEXT   = IT_FBCJ-TEXT.

     ITEMS-PERSON_NO       = IT_FBCJ-PERNR.

     append ITEMS.

   endloop.

endform.                    " UPLOAD

*&----

**&      Form  BAPI

*&----

form BAPI .

   call function 'BAPI_CASHJOURNALDOC_CREATE'

     exporting

       HEADER                    = HEADER

*  TESTRUN                   =

importing

*  COMPANY_CODE              =

    CASH_JOURNAL_NUMBER       = V_NUMBER

    FISCAL_YEAR               = V_GJAHR

    CASH_JOURNAL_DOC_NO       = V_POSTNO

     tables

       ITEMS                     = ITEMS

*  TAX_ITEMS                 =

*  CPD_ITEMS                 =

*  WTAX_ITEMS                =

*  EXTENSION_IN              =

       RETURN                    = IT_RETURN .

*  IF IT_RETURN-TYPE IS NOT INITIAL.

           commit work.

       wait up to 10 seconds.

*    endif.

*Commiting the work using Commit Work

*  call function 'BAPI_TRANSACTION_COMMIT'

**EXPORTING

**  WAIT          = '10'

*importing

*  RETURN        = IT_RETURN

.

*  loop at IT_RETURN.

*    write: / IT_RETURN-TYPE,

*             IT_RETURN-ID ,

*             IT_RETURN-NUMBER,

*             IT_RETURN-MESSAGE.

*  endloop.

endform.                    "BAPI

*&---------------------------------------------------------------------*

*&      Form  DATA_EXRACTION

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

form DATA_EXRACTION .

*  types  : begin of GS_DOC ,

*           COMP_CODE        type TCJ_DOCUMENTS-COMP_CODE  ,

*           CAJO_NUMBER      type TCJ_DOCUMENTS-CAJO_NUMBER ,

*           POSTING_NUMBER   type TCJ_DOCUMENTS-POSTING_NUMBER ,

*           CURRENCY         type TCJ_DOCUMENTS-CURRENCY ,

*           H_PAYMENTS       type TCJ_DOCUMENTS-H_PAYMENTS,

*           H_NET_AMOUNT     type TCJ_DOCUMENTS-H_NET_AMOUNT,

*           H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,

*           DOCUMENT_DATE    type TCJ_DOCUMENTS-DOCUMENT_DATE ,

*           DOCUMENT_NUMBER  type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,

*           POSTING_DATE     type TCJ_DOCUMENTS-POSTING_DATE  ,

*           DOCUMENT_STATUS  type TCJ_DOCUMENTS-DOCUMENT_STATUS ,

*           end of GS_DOC  .

*

*  data : GT_DOC type standard table of GS_DOC ,

*         GW_DOC type  GS_DOC .

*

*

*  types  :  begin of GS_ITEMS  ,

*           COMP_CODE        type TCJ_POSITIONS-COMP_CODE  ,

*           CAJO_NUMBER      type TCJ_POSITIONS-CAJO_NUMBER ,

*           POSTING_NUMBER   type TCJ_POSITIONS-POSTING_NUMBER ,

*           CURRENCY         type TCJ_POSITIONS-CURRENCY ,

*           P_PAYMENTS       type TCJ_POSITIONS-P_PAYMENTS,

*           P_NET_AMOUNT     type TCJ_POSITIONS-P_NET_AMOUNT,

*           P_NET_PAYMENT_WT type TCJ_POSITIONS-P_NET_PAYMENT_WT ,

*           POSTING_DATE     type TCJ_POSITIONS-POSTING_DATE  ,

*           TRANSACT_NUMBER  type TCJ_POSITIONS-TRANSACT_NUMBER ,

*           GL_ACCOUNT       type TCJ_POSITIONS-GL_ACCOUNT ,

*           POSITION_TEXT    type TCJ_POSITIONS-POSITION_TEXT ,

*           KOKRS            type TCJ_POSITIONS-KOKRS ,

*           KOSTL            type TCJ_POSITIONS-KOSTL ,

*           PRCTR            type TCJ_POSITIONS-PRCTR,

*           PERNR            type TCJ_POSITIONS-PERNR ,

*          end of GS_ITEMS  .

*

*  data : GT_ITEMS type standard table of GS_ITEMS ,

*         GW_ITEMS type GS_ITEMS .

*

*  types : begin of GS_NAME  ,

*         COMP_CODE  type TCJ_TRANS_NAMES-COMP_CODE ,

*         TRANSACT_NUMBER type TCJ_TRANS_NAMES-TRANSACT_NUMBER  ,

*         TRANSACT_NAME   type TCJ_TRANS_NAMES-TRANSACT_NAME  ,

*         end of GS_NAME .

*

*  data   : GT_NAME type standard table of GS_NAME ,

*           GW_NAME type GS_NAME .

*

*  data : begin of IT_FINAL occurs 0 ,

*         CAJO_NUMBER      type TCJ_DOCUMENTS-CAJO_NUMBER ,

*         COMP_CODE        type TCJ_DOCUMENTS-COMP_CODE,

*         POSTING_NUMBER   type TCJ_DOCUMENTS-POSTING_NUMBER ,

*         CURRENCY         type TCJ_DOCUMENTS-CURRENCY ,

*         H_PAYMENTS       type TCJ_DOCUMENTS-H_PAYMENTS,

*         H_NET_AMOUNT     type TCJ_DOCUMENTS-H_NET_AMOUNT,

*         H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,

*         DOCUMENT_DATE    type TCJ_DOCUMENTS-DOCUMENT_DATE ,

*         DOCUMENT_NUMBER  type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,

*         POSTING_DATE     type TCJ_DOCUMENTS-POSTING_DATE  ,

*         DOCUMENT_STATUS  type TCJ_DOCUMENTS-DOCUMENT_STATUS ,

*         TRANSACT_NAME   type TCJ_TRANS_NAMES-TRANSACT_NAME  ,

*         TRANSACT_NUMBER  type TCJ_POSITIONS-TRANSACT_NUMBER ,

*         POSITION_TEXT    type TCJ_POSITIONS-POSITION_TEXT ,

*         KOKRS            type TCJ_POSITIONS-KOKRS ,

*         KOSTL            type TCJ_POSITIONS-KOSTL ,

*         PRCTR            type TCJ_POSITIONS-PRCTR,

*         GL_ACCOUNT       type TCJ_POSITIONS-GL_ACCOUNT ,

*         PERNR            type TCJ_POSITIONS-PERNR ,

*         end of IT_FINAL .

*

*

*

*  select  COMP_CODE  CAJO_NUMBER  POSTING_NUMBER  CURRENCY H_PAYMENTS

*          H_NET_AMOUNT H_NET_PAYMENT_WT  DOCUMENT_DATE

*          DOCUMENT_NUMBER  POSTING_DATE DOCUMENT_STATUS from TCJ_DOCUMENTS  into table GT_DOC

*          for all entries in IT_FBCJ

*          where COMP_CODE eq IT_FBCJ-BUKRS and  CAJO_NUMBER eq IT_FBCJ-CJNR and DOCUMENT_STATUS eq 'S' .

*

*  if GT_DOC IS NOT INITIAL  .

*    select   COMP_CODE  CAJO_NUMBER  POSTING_NUMBER  CURRENCY P_PAYMENTS

*             P_NET_AMOUNT P_NET_PAYMENT_WT  POSTING_DATE TRANSACT_NUMBER

*             GL_ACCOUNT  POSITION_TEXT KOKRS KOSTL PRCTR PERNR from TCJ_POSITIONS into table GT_ITEMS

*             for all entries in GT_DOC where COMP_CODE eq GT_DOC-COMP_CODE and

*             CAJO_NUMBER eq GT_DOC-CAJO_NUMBER and POSTING_NUMBER eq GT_DOC-POSTING_NUMBER .

*

*

*    select  COMP_CODE  TRANSACT_NUMBER TRANSACT_NAME from TCJ_TRANS_NAMES

*           into table GT_NAME for all entries in GT_ITEMS where COMP_CODE eq GT_ITEMS-COMP_CODE and

*            TRANSACT_NUMBER eq GT_ITEMS-TRANSACT_NUMBER .

*  endif .

*

*

*LOOP AT GT_DOC INTO GW_DOC .

*  IT_FINAL-CAJO_NUMBER    = GW_DOC-CAJO_NUMBER .

*  IT_FINAL-COMP_CODE      = GW_DOC-COMP_CODE .

*  IT_FINAL-POSTING_NUMBER = GW_DOC-POSTING_NUMBER .

*  IT_FINAL-CURRENCY       = GW_DOC-CURRENCY .

*  IT_FINAL-H_PAYMENTS     = GW_DOC-H_PAYMENTS .

*  IT_FINAL-H_NET_AMOUNT   = GW_DOC-H_NET_AMOUNT .

*IT_FINAL-H_NET_PAYMENT_WT = GW_DOC-H_NET_PAYMENT_WT .

*  IT_FINAL-DOCUMENT_DATE  = GW_DOC-DOCUMENT_DATE .

* IT_FINAL-DOCUMENT_NUMBER = GW_DOC-DOCUMENT_NUMBER .

*  IT_FINAL-POSTING_DATE   = GW_DOC-POSTING_DATE .

* IT_FINAL-DOCUMENT_STATUS = GW_DOC-DOCUMENT_STATUS .

*

*LOOP AT GT_ITEMS INTO GW_ITEMS WHERE CAJO_NUMBER    = GW_DOC-CAJO_NUMBER AND

*                                     COMP_CODE   = IT_FINAL-COMP_CODE .

* IT_FINAL-TRANSACT_NUMBER = GW_ITEMS-TRANSACT_NUMBER .

*   IT_FINAL-POSITION_TEXT = GW_ITEMS-POSITION_TEXT .

*   IT_FINAL-KOKRS         = GW_ITEMS-KOKRS .

*   IT_FINAL-KOSTL         = GW_ITEMS-KOSTL .

*   IT_FINAL-PRCTR         = GW_ITEMS-PRCTR .

*   IT_FINAL-GL_ACCOUNT    = GW_ITEMS-GL_ACCOUNT .

*   IT_FINAL-PERNR         = GW_ITEMS-PERNR.

*  ENDLOOP .

*

*  READ TABLE GT_NAME INTO GW_NAME  WITH KEY COMP_CODE = GW_DOC-COMP_CODE

*                                            TRANSACT_NUMBER = GW_ITEMS-TRANSACT_NUMBER .

*  IF SY-SUBRC = 0 .

*  IT_FINAL-TRANSACT_NAME  = GW_NAME-TRANSACT_NAME .

*  ENDIF .

*  APPEND IT_FINAL .

*  ENDLOOP .

*SORT IT_FINAL .

endform.                    " DATA_EXRACTION

*&---------------------------------------------------------------------*

*&      Form  DATA_EXRACTION1

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM DATA_EXRACTION1 .

   data  begin of IT_DOC occurs 0 ,

            COMP_CODE        type TCJ_DOCUMENTS-COMP_CODE  ,

            CAJO_NUMBER      type TCJ_DOCUMENTS-CAJO_NUMBER ,

            POSTING_NUMBER   type TCJ_DOCUMENTS-POSTING_NUMBER ,

            CURRENCY         type TCJ_DOCUMENTS-CURRENCY ,

            H_PAYMENTS       type TCJ_DOCUMENTS-H_PAYMENTS,

            H_NET_AMOUNT     type TCJ_DOCUMENTS-H_NET_AMOUNT,

            H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,

            DOCUMENT_DATE    type TCJ_DOCUMENTS-DOCUMENT_DATE ,

            DOCUMENT_NUMBER  type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,

            POSTING_DATE     type TCJ_DOCUMENTS-POSTING_DATE  ,

            DOCUMENT_STATUS  type TCJ_DOCUMENTS-DOCUMENT_STATUS ,

           end of IT_DOC  .

   data  begin of IT_ITEMS occurs 0 ,

            COMP_CODE        type TCJ_POSITIONS-COMP_CODE  ,

            CAJO_NUMBER      type TCJ_POSITIONS-CAJO_NUMBER ,

            POSTING_NUMBER   type TCJ_POSITIONS-POSTING_NUMBER ,

            CURRENCY         type TCJ_POSITIONS-CURRENCY ,

            P_PAYMENTS       type TCJ_POSITIONS-P_PAYMENTS,

            P_NET_AMOUNT     type TCJ_POSITIONS-P_NET_AMOUNT,

            P_NET_PAYMENT_WT type TCJ_POSITIONS-P_NET_PAYMENT_WT ,

            POSTING_DATE     type TCJ_POSITIONS-POSTING_DATE  ,

            TRANSACT_NUMBER  type TCJ_POSITIONS-TRANSACT_NUMBER ,

            GL_ACCOUNT       type TCJ_POSITIONS-GL_ACCOUNT ,

            POSITION_NUMBER  type tcj_positions-POSITION_NUMBER ,

            POSITION_TEXT    type TCJ_POSITIONS-POSITION_TEXT ,

            KOKRS            type TCJ_POSITIONS-KOKRS ,

            KOSTL            type TCJ_POSITIONS-KOSTL ,

            PRCTR            type TCJ_POSITIONS-PRCTR,

            PERNR            type TCJ_POSITIONS-PERNR ,

           end of IT_ITEMS  .

  DATA : BEGIN OF IT_NAME OCCURS 0 ,

         COMP_CODE  TYPE TCJ_TRANS_NAMES-COMP_CODE ,

         TRANSACT_NUMBER TYPE TCJ_TRANS_NAMES-TRANSACT_NUMBER  ,

         TRANSACT_NAME   TYPE TCJ_TRANS_NAMES-TRANSACT_NAME  ,

         END OF IT_NAME .

  DATA : BEGIN OF IT_FINAL OCCURS 0 ,

          CAJO_NUMBER      type TCJ_DOCUMENTS-CAJO_NUMBER ,

         COMP_CODE        type TCJ_DOCUMENTS-COMP_CODE,

         POSTING_NUMBER   type TCJ_DOCUMENTS-POSTING_NUMBER ,

         CURRENCY         type TCJ_DOCUMENTS-CURRENCY ,

         H_PAYMENTS       type TCJ_DOCUMENTS-H_PAYMENTS,

         H_NET_AMOUNT     type TCJ_DOCUMENTS-H_NET_AMOUNT,

        POSITION_NUMBER  type tcj_positions-POSITION_NUMBER ,

         H_NET_PAYMENT_WT type TCJ_DOCUMENTS-H_NET_PAYMENT_WT ,

         DOCUMENT_DATE    type TCJ_DOCUMENTS-DOCUMENT_DATE ,

         DOCUMENT_NUMBER  type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,

         POSTING_DATE     type TCJ_DOCUMENTS-POSTING_DATE  ,

         DOCUMENT_STATUS  type TCJ_DOCUMENTS-DOCUMENT_STATUS ,

         TRANSACT_NAME   TYPE TCJ_TRANS_NAMES-TRANSACT_NAME  ,

         TRANSACT_NUMBER TYPE  TCJ_POSITIONS-TRANSACT_NUMBER ,

         POSITION_TEXT    type TCJ_POSITIONS-POSITION_TEXT ,

         DOCUMENT_NUMBER1  type TCJ_DOCUMENTS-DOCUMENT_NUMBER ,

         KOKRS            type TCJ_POSITIONS-KOKRS ,

         KOSTL            type TCJ_POSITIONS-KOSTL ,

         PRCTR            type TCJ_POSITIONS-PRCTR,

         GL_ACCOUNT       type TCJ_POSITIONS-GL_ACCOUNT ,

         PERNR            type TCJ_POSITIONS-PERNR ,

         END OF IT_FINAL .

   select  COMP_CODE  CAJO_NUMBER  POSTING_NUMBER  CURRENCY H_PAYMENTS

           H_NET_AMOUNT H_NET_PAYMENT_WT  DOCUMENT_DATE

           DOCUMENT_NUMBER  POSTING_DATE DOCUMENT_STATUS FROM TCJ_DOCUMENTS INTO TABLE IT_DOC

*          FOR ALL ENTRIES IN IT_FBCJ

           WHERE COMP_CODE EQ IT_FBCJ-BUKRS AND  CAJO_NUMBER EQ IT_FBCJ-CJNR ANDDOCUMENT_STATUS EQ 'S' .

  IF SY-SUBRC = 0 .

  SELECT   COMP_CODE  CAJO_NUMBER  POSTING_NUMBER  CURRENCY P_PAYMENTS POSITION_NUMBER

           P_NET_AMOUNT P_NET_PAYMENT_WT  POSTING_DATE TRANSACT_NUMBER

           GL_ACCOUNT  POSITION_TEXT KOKRS KOSTL PRCTR PERNR FROM TCJ_POSITIONSINTO

           corresponding fields of table IT_ITEMS

           FOR ALL ENTRIES IN IT_DOC WHERE COMP_CODE EQ IT_DOC-COMP_CODE AND

           CAJO_NUMBER EQ IT_DOC-CAJO_NUMBER and POSTING_NUMBER EQ IT_DOC-POSTING_NUMBER .

    ENDIF .

  IF SY-SUBRC = 0 .

    SELECT  COMP_CODE  TRANSACT_NUMBER TRANSACT_NAME FROM TCJ_TRANS_NAMES

           INTO TABLE IT_NAME FOR ALL ENTRIES IN IT_ITEMS WHERE COMP_CODE EQ IT_ITEMS-COMP_CODE AND

            TRANSACT_NUMBER EQ IT_ITEMS-TRANSACT_NUMBER .

   ENDIF .

   LOOP AT IT_DOC .

   IT_FINAL-CAJO_NUMBER    = IT_DOC-CAJO_NUMBER .

   IT_FINAL-COMP_CODE      = IT_DOC-COMP_CODE .

   IT_FINAL-POSTING_NUMBER = IT_DOC-POSTING_NUMBER .

   IT_FINAL-CURRENCY       = IT_DOC-CURRENCY .

*  IT_FINAL-H_PAYMENTS     = IT_DOC-H_PAYMENTS .

*  IT_FINAL-H_NET_AMOUNT   = IT_DOC-H_NET_AMOUNT .

IT_FINAL-H_NET_PAYMENT_WT = IT_DOC-H_NET_PAYMENT_WT .

   IT_FINAL-DOCUMENT_DATE  = IT_DOC-DOCUMENT_DATE .

  IT_FINAL-DOCUMENT_NUMBER = IT_DOC-DOCUMENT_NUMBER .

   IT_FINAL-POSTING_DATE   = IT_DOC-POSTING_DATE .

  IT_FINAL-DOCUMENT_STATUS = IT_DOC-DOCUMENT_STATUS .

LOOP AT IT_ITEMS  WHERE CAJO_NUMBER = IT_DOC-CAJO_NUMBER AND

                         COMP_CODE   = IT_DOC-COMP_CODE   AND

                      POSTING_NUMBER = IT_DOC-POSTING_NUMBER .

  IT_FINAL-TRANSACT_NUMBER = IT_ITEMS-TRANSACT_NUMBER .

    IT_FINAL-POSITION_TEXT = IT_ITEMS-POSITION_TEXT .

    it_final-POSITION_NUMBER = it_items-POSITION_NUMBER .

   IT_FINAL-H_PAYMENTS     = IT_ITEMS-P_PAYMENTS .

   IT_FINAL-H_NET_AMOUNT   = IT_ITEMS-P_NET_AMOUNT .

    IT_FINAL-KOKRS         = IT_ITEMS-KOKRS .

    IT_FINAL-KOSTL         = IT_ITEMS-KOSTL .

    IT_FINAL-PRCTR         = IT_ITEMS-PRCTR .

    IT_FINAL-GL_ACCOUNT    = IT_ITEMS-GL_ACCOUNT .

    IT_FINAL-PERNR         = IT_ITEMS-PERNR.

ENDLOOP .

   READ TABLE IT_NAME WITH KEY COMP_CODE = IT_DOC-COMP_CODE

                                             TRANSACT_NUMBER = IT_ITEMS-TRANSACT_NUMBER .

* LOOP AT IT_NAME WHERE COMP_CODE = IT_DOC-COMP_CODE AND

*                       TRANSACT_NUMBER = IT_ITEMS-TRANSACT_NUMBER .

   IF SY-SUBRC = 0 .

   IT_FINAL-TRANSACT_NAME  = IT_NAME-TRANSACT_NAME .

   ENDIF .

   APPEND IT_FINAL .

   CLEAR IT_FINAL .

   ENDLOOP .

*  ENDLOOP .

   IF SY-SUBRC = 0 .

SORT IT_FINAL .

DELETE ADJACENT DUPLICATES FROM IT_FINAL COMPARING ALL FIELDS .

SORT IT_FINAL .

ENDIF .

LOOP AT IT_FINAL .

          ITEMS1-CAJO_NUMBER  = IT_FINAL-CAJO_NUMBER .

          TCJ-CAJO_NUMBER  = IT_FINAL-CAJO_NUMBER .

          TAX-CAJO_NUMBER  = IT_FINAL-CAJO_NUMBER .

          ITEMS1-COMP_CODE       = IT_FINAL-COMP_CODE.

          TCJ-COMP_CODE       = IT_FINAL-COMP_CODE.

          TAX-COMP_CODE       = IT_FINAL-COMP_CODE.

          ITEMS1-POSTING_NUMBER  = IT_FINAL-POSTING_NUMBER .

          TCJ-POSTING_NUMBER  = IT_FINAL-POSTING_NUMBER .

          TAX-POSTING_NUMBER  = IT_FINAL-POSTING_NUMBER .

*        ITEMS1-CURRENCY        = IT_FINAL-CURRENCY .

         ITEMS1-H_PAYMENTS      = IT_FINAL-H_PAYMENTS .

         ITEMS1-H_NET_AMOUNT    = IT_FINAL-H_NET_AMOUNT .

         ITEMS1-H_NET_PAYMENT_WT = IT_FINAL-H_NET_PAYMENT_WT .

         ITEMS1-DOCUMENT_DATE   = IT_FINAL-DOCUMENT_DATE .

         ITEMS1-DOCUMENT_NUMBER = IT_FINAL-DOCUMENT_NUMBER .

         ITEMS1-POSTING_DATE    = IT_FINAL-POSTING_DATE  .

         ITEMS1-DOCUMENT_STATUS = IT_FINAL-DOCUMENT_STATUS .

         ITEMS1-TRANSACT_NAME   = IT_FINAL-TRANSACT_NAME  .

*        ITEMS1-TRANSACT_NUMBER = IT_FINAL-TRANSACT_NUMBER .

         ITEMS1-POSITION_TEXT    = IT_FINAL-POSITION_TEXT .

          items1-POSITION_NUMBER = it_final-POSITION_NUMBER .

          TCJ-POSITION_NUMBER = it_final-POSITION_NUMBER .

          TAX-POSITION_NUMBER = it_final-POSITION_NUMBER .

*        ITEMS1-DOCUMENT_NUMBER1 = IT_FINAL-DOCUMENT_NUMBER .

         ITEMS1-KOKRS            = IT_FINAL-KOKRS .

         ITEMS1-KOSTL            = IT_FINAL-KOSTL .

         ITEMS1-PRCTR            = IT_FINAL-PRCTR .

         ITEMS1-GL_ACCOUNT       = IT_FINAL-GL_ACCOUNT .

         ITEMS1-PERNR            = IT_FINAL-PERNR .

         APPEND ITEMS1 .

         APPEND TCJ .

         APPEND TAX.

         ENDLOOP .

      POSTING[] = ITEMS1[] .

*     TAX[] = TCJ[] .

ENDFORM.                    " DATA_EXRACTION1

*&---------------------------------------------------------------------*

*&      Form  BAPI_UPDATE

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM BAPI_UPDATE .

   DATA : P_BEG_BALANCE  TYPE  CJAMOUNT ,

P_TOTAL_RECEIPTS TYPE  CJAMOUNT,

P_TOTAL_PAYMENTS TYPE  CJAMOUNT,

P_TOTAL_CHECKS TYPE  CJAMOUNT,

P_RUN_BALANCE TYPE  CJAMOUNT,

P_RUN_CASH_BALANCE TYPE  CJAMOUNT,

P_NUMB_OF_REC TYPE  I,

P_NUMB_OF_PAYM TYPE  I,

P_NUMB_OF_CHECKS TYPE  I.

  P_BEG_BALANCE     =  '0.00' .

    P_TOTAL_RECEIPTS  = '0.00'.

    P_TOTAL_PAYMENTS  = '40.00'.

    P_TOTAL_CHECKS    = '0.00'   .

    P_RUN_BALANCE     = '0.00'   .

    P_RUN_CASH_BALANCE = '0.00'   .

    P_NUMB_OF_REC     = '4'   .

    P_NUMB_OF_PAYM    = '4' .

    P_NUMB_OF_CHECKS  = '0' .

   call function 'FCJ_POST_ALL'

     exporting

       I_COMP_CODE               = HEADER1-COMP_CODE

       I_CAJO_NUMBER             = HEADER1-CAJO_NUMBER

       I_CURRENCY                = HEADER1-CURRENCY

       I_TYP                     = 'C'

       I_DISPLAY_PERIOD_LO       = '01122012'

       I_DISPLAY_PERIOD_HI       = '31122012'

*   IMPORTING

*     E_ERROR_NUMBER            =

     TABLES

       ITCJ_POSTINGS             = ITEMS1

       ITCJ_WTAX_ITEMS           = TAX

       ITCJ_SPLIT_POSTINGS       = POSTING

        ITCJ_CPD                  = TCJ

     CHANGING

       P_BEG_BALANCE             = P_BEG_BALANCE

       P_TOTAL_RECEIPTS          = P_TOTAL_RECEIPTS

       P_TOTAL_PAYMENTS          = P_TOTAL_PAYMENTS

       P_TOTAL_CHECKS            = P_TOTAL_CHECKS

       P_RUN_BALANCE             = P_RUN_BALANCE

       P_RUN_CASH_BALANCE        = P_RUN_CASH_BALANCE

       P_NUMB_OF_REC             = P_NUMB_OF_REC

       P_NUMB_OF_PAYM            = P_NUMB_OF_PAYM

       P_NUMB_OF_CHECKS          = P_NUMB_OF_CHECKS

             .

  commit work.

       wait up to 10 seconds.

*    endif.

*Commiting the work using Commit Work

*  call function 'BAPI_TRANSACTION_COMMIT'

**EXPORTING

**  WAIT          = '10'

*importing

*  RETURN        = IT_RETURN

.

   loop at IT_RETURN.

     write: / IT_RETURN-TYPE,

              IT_RETURN-ID ,

              IT_RETURN-NUMBER,

              IT_RETURN-MESSAGE.

   endloop.

ENDFORM.                    " BAPI_UPDATE