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

Upload program for FBCJ

Former Member
0 Likes
2,001

HI Guru's,

follwing program i created for upload cash journal transaction T.Code: FBCJ..

with this program i can able enter 2 entries only and not calcualating the TAX.. any one can help me..

REPORT ZFI_FBCJ_UPLOAD.

  • Top includes for variables, screen declaration

INCLUDE ZFI_FBCJ_UPLOAD_TOP.

  • Subroutines

INCLUDE ZFI_FBCJ_UPLOAD_SUB.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

  • Select file

PERFORM FM_GET_FNAME USING P_FILE.

START-OF-SELECTION.

CLEAR V_PROCESS_OK.

  • read excel file

PERFORM FM_READ_DATA.

  • End of selection

END-OF-SELECTION.

IF V_PROCESS_OK = 'R'.

  • post receipts

PERFORM FM_POST_RECEIPTS.

ELSEIF V_PROCESS_OK = 'P'.

  • post payments

PERFORM FM_POST_PAYMENTS.

ENDIF.

  • read log messages

PERFORM FM_READ_LOG.

&----


*& Include ZFI_FBCJ_UPLOAD_TOP_TOP

&----


TABLES: TCJ_DOCUMENTS.

TYPES:

BEGIN OF STRT_RECEIPT,

TRANSACT_NUMBER(4) TYPE C, "Bus Transac

P_RECEIPTS(15) TYPE C, "Amount

POSITION_TEXT(50) TYPE C, "Head Text

VENDOR_NO(10) TYPE C, "Vendor No

END OF STRT_RECEIPT,

BEGIN OF STRT_PAYMENT,

TRANSACT_NUMBER(4) TYPE C, "Bus Transac

H_PAYMENTS(15) TYPE C, "Amount

GL_ACCOUNT(10) TYPE C, "G/L ac

TAX_CODE(2) TYPE C, "Tax Code

POSITION_TEXT(50) TYPE C, "Head Text

KOSTL(10) TYPE C, "Cost Cntre

END OF STRT_PAYMENT.

DATA:

  • Internal tables

ITABT_RECEIPT TYPE TABLE OF STRT_RECEIPT,

ITABT_PAYMENT TYPE TABLE OF STRT_PAYMENT,

ITABT_BAPI_CJ_ITEMS TYPE TABLE OF BAPI_CJ_ITEMS,

ITABT_BAPI_CJ_TAX_ITEMS TYPE TABLE OF BAPI_CJ_TAX_ITEMS,

ITABT_STR TYPE TABLE OF STRING,

ITABT_RETURN TYPE TABLE OF BAPIRET2,

  • work area

STRT_WRECEIPT TYPE STRT_RECEIPT,

STRT_WPAYMENT TYPE STRT_PAYMENT,

STRT_WSTR TYPE STRING,

STRT_WBAPI_CJ_HEADER TYPE BAPI_CJ_HEADER,

STRT_WBAPI_CJ_ITEMS TYPE BAPI_CJ_ITEMS,

STRT_WBAPI_CJ_TAX_ITEMS TYPE BAPI_CJ_TAX_ITEMS,

STRT_WRETURN TYPE BAPIRET2,

  • Variables

V_PROCESS_OK,

V_TEST,

V_COUNT TYPE I.

************************************************************************

*Selection Screeen *

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK D WITH FRAME TITLE TEXT-001.

PARAMETERS : P_CCODE LIKE TCJ_DOCUMENTS-COMP_CODE,

P_CJNO LIKE TCJ_DOCUMENTS-CAJO_NUMBER,

P_DOCNO LIKE TCJ_DOCUMENTS-DOCUMENT_NUMBER.

SELECTION-SCREEN END OF BLOCK D.

SELECTION-SCREEN BEGIN OF BLOCK A WITH FRAME TITLE TEXT-002.

PARAMETERS : RB_RECPT RADIOBUTTON GROUP RAD USER-COMMAND U1

DEFAULT 'X',

"Cash receipts/Payments

RB_PAYMT RADIOBUTTON GROUP RAD.

SELECTION-SCREEN END OF BLOCK A.

SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME TITLE TEXT-003.

PARAMETERS: P_FILE LIKE RLGRAP-FILENAME DEFAULT 'C:\'.

SELECTION-SCREEN END OF BLOCK B.

SELECTION-SCREEN BEGIN OF BLOCK C WITH FRAME TITLE TEXT-004.

PARAMETERS: P_TEST TYPE CHECKBOX.

SELECTION-SCREEN END OF BLOCK C.

&----


*& Include ZFI_FBCJ_UPLOAD_SUB_SUB

**

&----


&----


*& Form fm_get_fname

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FM_GET_FNAME USING V_FILENAME TYPE LOCALFILE .

DATA: GT_FILES TYPE FILETABLE, " WITH HEADER LINE,

G_RC TYPE I,

G_ACTION TYPE I,

LV_WINDOW_TITLE TYPE STRING.

LV_WINDOW_TITLE = TEXT-005.

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG

EXPORTING

WINDOW_TITLE = LV_WINDOW_TITLE

DEFAULT_EXTENSION = 'CSV'

  • INITIAL_DIRECTORY = '%winnt%'

INITIAL_DIRECTORY = 'C:\'

MULTISELECTION = 'X' " file multiselection

CHANGING

FILE_TABLE = GT_FILES

RC = G_RC

USER_ACTION = G_ACTION

EXCEPTIONS

FILE_OPEN_DIALOG_FAILED = 1

CNTL_ERROR = 2

ERROR_NO_GUI = 3

NOT_SUPPORTED_BY_GUI = 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.

ENDIF.

READ TABLE GT_FILES INTO V_FILENAME INDEX 1.

ENDFORM. " fm_get_fname

&----


*& Form fm_read_data

&----


FORM FM_READ_DATA.

CLEAR: ITABT_STR, STRT_WSTR.

DATA: FILENAME TYPE STRING.

FILENAME = P_FILE.

CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD

EXPORTING

FILENAME = FILENAME

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = 'X'

CHANGING

DATA_TAB = ITABT_STR

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

NOT_SUPPORTED_BY_GUI = 17

ERROR_NO_GUI = 18

OTHERS = 19

.

IF SY-SUBRC <> 0.

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

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

ElSE.

  • test run indicator

V_TEST = P_TEST.

  • company code

STRT_WBAPI_CJ_HEADER-COMP_CODE = P_CCODE.

  • cj no

STRT_WBAPI_CJ_HEADER-CAJO_NUMBER = P_CJNO.

  • ISO code currency

STRT_WBAPI_CJ_HEADER-CURRENCY_ISO = 'SGD'.

  • reference

STRT_WBAPI_CJ_HEADER-REF_DOC_NO = P_DOCNO.

  • posting date

STRT_WBAPI_CJ_HEADER-PSTNG_DATE = SY-DATUM.

  • document date

STRT_WBAPI_CJ_HEADER-DOC_DATE = SY-DATUM.

CASE 'X'.

WHEN RB_RECPT.

REFRESH ITABT_RECEIPT.

CLEAR: STRT_WSTR, STRT_WRECEIPT.

LOOP AT ITABT_STR INTO STRT_WSTR.

SPLIT STRT_WSTR AT ',' INTO

STRT_WRECEIPT-TRANSACT_NUMBER

STRT_WRECEIPT-P_RECEIPTS

STRT_WRECEIPT-POSITION_TEXT

STRT_WRECEIPT-VENDOR_NO.

APPEND STRT_WRECEIPT TO ITABT_RECEIPT.

CLEAR: STRT_WSTR, STRT_WRECEIPT.

ENDLOOP.

V_PROCESS_OK = 'R'.

WHEN RB_PAYMT.

REFRESH ITABT_PAYMENT.

CLEAR: STRT_WSTR, STRT_WPAYMENT.

LOOP AT ITABT_STR INTO STRT_WSTR.

SPLIT STRT_WSTR AT ',' INTO

STRT_WPAYMENT-TRANSACT_NUMBER

STRT_WPAYMENT-H_PAYMENTS

STRT_WPAYMENT-GL_ACCOUNT

STRT_WPAYMENT-TAX_CODE

STRT_WPAYMENT-POSITION_TEXT

STRT_WPAYMENT-KOSTL.

APPEND STRT_WPAYMENT TO ITABT_PAYMENT.

CLEAR: STRT_WSTR, STRT_WPAYMENT.

ENDLOOP.

V_PROCESS_OK = 'P'.

ENDCASE.

ENDIF.

ENDFORM. " fm_read_data

&----


*& Form FM_POST_RECEIPTS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FM_POST_RECEIPTS .

CLEAR: STRT_WRECEIPT, V_COUNT.

LOOP AT ITABT_RECEIPT INTO STRT_WRECEIPT.

V_COUNT = V_COUNT + 1.

  • item no

STRT_WBAPI_CJ_ITEMS-POSITION_NUMBER = V_COUNT.

  • Business Transaction

STRT_WBAPI_CJ_ITEMS-TRANSACT_NUMBER =

STRT_WRECEIPT-TRANSACT_NUMBER.

  • receipts

STRT_WBAPI_CJ_ITEMS-P_RECEIPTS = STRT_WRECEIPT-P_RECEIPTS.

  • text

STRT_WBAPI_CJ_ITEMS-POSITION_TEXT = STRT_WRECEIPT-POSITION_TEXT.

  • vendor number

STRT_WBAPI_CJ_ITEMS-VENDOR_NO = STRT_WRECEIPT-VENDOR_NO.

APPEND STRT_WBAPI_CJ_ITEMS TO ITABT_BAPI_CJ_ITEMS.

ENDLOOP.

CALL FUNCTION 'BAPI_CASHJOURNALDOC_CREATE'

EXPORTING

HEADER = STRT_WBAPI_CJ_HEADER

TESTRUN = V_TEST

TABLES

ITEMS = ITABT_BAPI_CJ_ITEMS

RETURN = ITABT_RETURN

.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

ENDFORM. " FM_POST_RECEIPTS

&----


*& Form FM_POST_PAYMENTS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FM_POST_PAYMENTS .

*CLEAR: STRT_WPAYMENT, V_COUNT.

*REFRESH ITABT_BAPI_CJ_TAX_ITEMS.

LOOP AT ITABT_PAYMENT INTO STRT_WPAYMENT.

*CLEAR: STRT_WBAPI_CJ_TAX_ITEMS.

  • REFRESH ITABT_BAPI_CJ_TAX_ITEMS.

V_COUNT = V_COUNT + 1.

  • item no

STRT_WBAPI_CJ_ITEMS-POSITION_NUMBER = V_COUNT.

  • Number of Cash Journal Business Transaction

STRT_WBAPI_CJ_ITEMS-TRANSACT_NUMBER = STRT_WPAYMENT-TRANSACT_NUMBER.

  • payments

STRT_WBAPI_CJ_ITEMS-P_PAYMENTS = STRT_WPAYMENT-H_PAYMENTS.

  • G/L account

STRT_WBAPI_CJ_ITEMS-GL_ACCOUNT = STRT_WPAYMENT-GL_ACCOUNT.

  • tax code

STRT_WBAPI_CJ_ITEMS-TAX_CODE = STRT_WPAYMENT-TAX_CODE.

  • text

STRT_WBAPI_CJ_ITEMS-POSITION_TEXT = STRT_WPAYMENT-POSITION_TEXT.

  • cost centre

STRT_WBAPI_CJ_ITEMS-COSTCENTER = STRT_WPAYMENT-KOSTL.

APPEND STRT_WBAPI_CJ_ITEMS TO ITABT_BAPI_CJ_ITEMS.

CLEAR STRT_WBAPI_CJ_ITEMS.

  • tax code

STRT_WBAPI_CJ_TAX_ITEMS-TAX_CODE = STRT_WPAYMENT-TAX_CODE.

APPEND STRT_WBAPI_CJ_TAX_ITEMS TO ITABT_BAPI_CJ_TAX_ITEMS.

CLEAR: STRT_WPAYMENT,STRT_WBAPI_CJ_TAX_ITEMS.

ENDLOOP.

CALL FUNCTION 'BAPI_CASHJOURNALDOC_CREATE'

EXPORTING

HEADER = STRT_WBAPI_CJ_HEADER

TESTRUN = V_TEST

TABLES

ITEMS = ITABT_BAPI_CJ_ITEMS

TAX_ITEMS = ITABT_BAPI_CJ_TAX_ITEMS

RETURN = ITABT_RETURN

.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'.

  • IMPORTING

  • RETURN = .

ENDFORM. " FM_POST_PAYMENTS

&----


*& Form FM_READ_LOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FM_READ_LOG .

LOOP AT ITABT_RETURN INTO STRT_WRETURN.

CALL FUNCTION 'BAPI_MESSAGE_GETDETAIL'

EXPORTING

ID = STRT_WRETURN-ID

NUMBER = STRT_WRETURN-NUMBER

LANGUAGE = SY-LANGU

TEXTFORMAT = 'NON'

MESSAGE_V1 = STRT_WRETURN-MESSAGE_V1

MESSAGE_V2 = STRT_WRETURN-MESSAGE_V2

MESSAGE_V3 = STRT_WRETURN-MESSAGE_V3

MESSAGE_V4 = STRT_WRETURN-MESSAGE_V4

IMPORTING

MESSAGE = STRT_WRETURN-MESSAGE.

WRITE:/ STRT_WRETURN-MESSAGE.

ENDLOOP.

ENDFORM. " FM_READ_LOG

regards

JK

3 REPLIES 3
Read only

Former Member
0 Likes
1,225

aa

Read only

Former Member
0 Likes
1,225

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

Read only

Former Member
0 Likes
1,225

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