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

BAPI Program update for FBCJ

Former Member
0 Likes
1,466

HI Guru's,

Created following program for FBCJ-Petty cash postings...program is working documents only saving .. Accounting documents are not creating...is there i need to use another call function for GL posting..

&----


*& Report ZFI_FBCJ_UPLOAD *

*& *

&----


*& *

*& *

&----


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

&----


TABLES: TCJ_DOCUMENTS.

TYPES:

BEGIN OF STRT_RECEIPT,

TRANSACT_NUMBER(4) TYPE C, "Bus Transac

H_PAYMENTS(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

&----


&----


*& 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.

LOOP AT ITABT_STR INTO STRT_WSTR.

SPLIT STRT_WSTR AT ',' INTO

STRT_WRECEIPT-TRANSACT_NUMBER

STRT_WRECEIPT-H_PAYMENTS

STRT_WRECEIPT-POSITION_TEXT

STRT_WRECEIPT-VENDOR_NO.

APPEND STRT_WRECEIPT TO ITABT_RECEIPT.

ENDLOOP.

V_PROCESS_OK = 'R'.

WHEN RB_PAYMT.

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.

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-P_RECEIPTS = STRT_WRECEIPT-TRANSACT_NUMBER.

  • receipts

STRT_WBAPI_CJ_ITEMS-P_RECEIPTS = STRT_WRECEIPT-H_PAYMENTS.

  • 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.

LOOP AT ITABT_PAYMENT INTO STRT_WPAYMENT.

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.

  • 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.

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'.

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
841

hi

please refer to the following link below

Regards

Aakash

1 REPLY 1
Read only

Former Member
0 Likes
842

hi

please refer to the following link below

Regards

Aakash