‎2010 Jun 22 4:49 AM
Hi expert,
When i use the BAPI_ENTRYSHEET_CREATE to create service entry sheet, after executed the program the service sheet has been created.
I go to check the Service sheet using ML81N, i can 't found any item in this service sheet.
Anybody how to fix this problem ?
Regards,
Luke
Edited by: LukeWong on Jun 23, 2010 4:23 AM
‎2010 Jun 23 3:27 AM
‎2010 Jun 23 3:44 AM
Hello,
Did you fill internal table for ENTRYSHEETSERVICES and use 'COMMIT WORK' after the BAPI call?
Thanks,
Venu
‎2010 Jun 23 5:32 AM
Hi Venu,
I done it. If i not mark "X" for the acceptance flag in the header .
I can Create the Service entry sheet, but still not contain any service item.
After i mark this flag, it will have the error 214 error during update.
Regards,
Luke
‎2010 Jun 24 7:37 AM
‎2010 Jun 28 8:52 AM
Hi All,
This is my source code, please kindly to help me.
I_ENYSHEET_HDR-PCKG_NO = 1.
I_ENYSHEET_HDR-PO_NUMBER = IT_PROCESS-EBELN.
I_ENYSHEET_HDR-PO_ITEM = IT_PROCESS-EBELP.
I_ENYSHEET_HDR-REF_DOC_NO = IT_PROCESS-XBLNR.
I_ENYSHEET_HDR-SHORT_TEXT = 'TESTING'.
I_ENYSHEET_HDR-REF_DATE = SY-DATUM.
I_ENYSHEET_HDR-DOC_DATE = SY-DATUM.
I_ENYSHEET_HDR-POST_DATE = SY-DATUM.
I_ENYSHEET_HDR-POST_DATE = '20100310'. " TESTING
I_ENYSHEET_HDR-ACCASSCAT = IT_PROCESS-KNTTP." Account Assignment
I_ENYSHEET_HDR-ACCEPTANCE = 'X'.
Fill in the Service Entry Sheet Line Item
CLEAR T_ENYSHEET_SERVICES.
T_ENYSHEET_SERVICES-PCKG_NO = 1.
T_ENYSHEET_SERVICES-LINE_NO = 1.
T_ENYSHEET_SERVICES-EXT_LINE = '0000000000'.
T_ENYSHEET_SERVICES-OUTL_LEVEL = '0'.
T_ENYSHEET_SERVICES-OUTL_IND = 'X'.
T_ENYSHEET_SERVICES-SUBPCKG_NO = 2.
APPEND T_ENYSHEET_SERVICES.
CLEAR T_ENYSHEET_SERVICES.
T_ENYSHEET_SERVICES-PCKG_NO = 2.
T_ENYSHEET_SERVICES-LINE_NO = 2.
Get the service information from table ESLL.
CLEAR : EKPO, W_ESLL.
SELECT SINGLE * FROM EKPO WHERE EBELN = IT_PROCESS-EBELN
AND EBELP = IT_PROCESS-EBELP.
IF SY-SUBRC = 0.
CLEAR ESLL.
SELECT SINGLE * FROM ESLL WHERE PACKNO = EKPO-PACKNO.
IF SY-SUBRC = 0.
CLEAR W_ESLL.
MOVE ESLL-SUB_PACKNO TO W_PACKNO.
SELECT SINGLE * FROM ESLL INTO W_ESLL WHERE PACKNO = W_PACKNO.
if sy-subrc = 0.
endif.
ENDIF.
Fill in the Service Entry Sheet Account Assignment Line.
T_ENYSHEET_SERVICES-PLN_PCKG = W_ESLL-PACKNO.
T_ENYSHEET_SERVICES-EXT_LINE = W_ESLL-EXTROW.
T_ENYSHEET_SERVICES-PLN_LINE = W_ESLL-INTROW.
T_ENYSHEET_SERVICES-SERVICE = W_ESLL-SRVPOS.
T_ENYSHEET_SERVICES-SHORT_TEXT = W_ESLL-KTEXT1.
T_ENYSHEET_SERVICES-QUANTITY = IT_PROCESS-MENGE.
T_ENYSHEET_SERVICES-GR_PRICE = W_ESLL-TBTWR.
T_ENYSHEET_SERVICES-MATL_GROUP = W_ESLL-MATKL.
IF W_ESLL-TBTWR IS INITIAL.
IF NOT W_ESLL-MENGE IS INITIAL.
T_ENYSHEET_SERVICES-GR_PRICE = W_ESLL-BRTWR / W_ESLL-MENGE.
ENDIF.
ENDIF.
APPEND T_ENYSHEET_SERVICES.
ENDSELECT.
clear ekpo.
select single * from ekpo where ebeln = it_process-ebeln
and ebelp = it_process-ebelp.
IF ( NOT IT_PROCESS-KNTTP IS INITIAL ) AND EKPO-KNTTP = 'U'.
CLEAR T_ENYSHEET_SERVACCASSVALUES.
MOVE-CORRESPONDING T_ENYSHEET_SERVICES
TO T_ENYSHEET_SERVACCASSVALUES.
T_ENYSHEET_SERVACCASSVALUES-PCKG_NO = 1.
T_ENYSHEET_SERVACCASSVALUES-SERNO_LINE = 1.
T_ENYSHEET_SERVACCASSVALUES-PERCENTAGE = 100.
T_ENYSHEET_SERVACCASSVALUES-SERIAL_NO = 1.
APPEND T_ENYSHEET_SERVACCASSVALUES.
CLEAR T_ENYSHEET_ACCT_ASS.
MOVE-CORRESPONDING T_ENYSHEET_SERVICES
TO T_ENYSHEET_ACCT_ASS.
T_ENYSHEET_ACCT_ASS-PCKG_NO = L_LINE_NO.
T_ENYSHEET_ACCT_ASS-PCKG_NO = 1.
T_ENYSHEET_ACCT_ASS-SERIAL_NO = 1.
PERFORM CONVERSION_EXIT_ALPHA_INPUT
USING IT_PROCESS-SAKTO
CHANGING T_ENYSHEET_ACCT_ASS-GL_ACCOUNT.
CASE IT_PROCESS-KNTTP.
WHEN 'K'.
PERFORM CONVERSION_EXIT_ALPHA_INPUT
USING IT_PROCESS-KOSTL
CHANGING T_ENYSHEET_ACCT_ASS-COSTCENTER.
WHEN 'P'.
CALL FUNCTION 'CONVERSION_EXIT_ABPSN_INPUT'
EXPORTING
INPUT = IT_PROCESS-PS_PSP_PNR
IMPORTING
OUTPUT = T_ENYSHEET_ACCT_ASS-WBS_ELEM.
WHEN 'F'.
PERFORM CONVERSION_EXIT_ALPHA_INPUT
USING IT_PROCESS-AUFNR
CHANGING T_ENYSHEET_ACCT_ASS-ORDER.
ENDCASE.
APPEND T_ENYSHEET_ACCT_ASS.
ENDIF.
ENDIF.
CALL FUNCTION 'BAPI_ENTRYSHEET_CREATE'
EXPORTING
ENTRYSHEETHEADER = I_ENYSHEET_HDR
TESTRUN = P_CHK1
IMPORTING
ENTRYSHEET = I_ENYSHEET
TABLES
ENTRYSHEETACCOUNTASSIGNMENT = T_ENYSHEET_ACCT_ASS
ENTRYSHEETSERVICES = T_ENYSHEET_SERVICES
ENTRYSHEETSRVACCASSVALUES = T_ENYSHEET_SERVACCASSVALUES
RETURN = T_RETURN
ENTRYSHEETSERVICESTEXTS = T_ENYSHEETSERVICESTEXTS
ENTRYSHEETHEADERTEXT = T_ENYSHEETHEADERTEXT.
.
*
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = T_RETURN.
IF NOT T_RETURN[] IS INITIAL.
APPEND T_RETURN.
ENDIF.
Regards,
Luke
‎2010 Jul 12 9:08 AM
‎2010 Aug 12 1:51 PM
Hi Luke,
I have the same problem... I see in your post that you have resolved the issue by your own... can you please let me know how you did it... your input will be appreciated..
Thx
Viv
‎2010 Aug 13 3:16 AM
Hi Viv,
Yes, For my situation, I submited the bapi in background mode then can execute the BAPI.
It seems anthorization problem in SAP.
Regards,
Luke