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

Former Member
0 Likes
1,166

hI,

'

Can anyone post me a simple program for creating sales order using BAPI.

Thanks

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
625

hi,

check out this program,this may giv you some idea of creating a sales order thru BAPI

&----


*& Report ZSALESORDER243

*&

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

REPORT ZSALESORDER243 MESSAGE-ID Z243_MESS.

TYPE-POOLS : SLIS.

TABLES : ZSIVA_KA_FE_12,

VBAK,

KUAGV,

KUWEV,

VBAP,

VBKD,

VBEP,

VBUK.

&--


GLOBAL DECLARATION--

DATA: OK_CODE LIKE SY-UCOMM, "user command

SAVE_CODE LIKE OK_CODE.

DATA: IT_EXTAB TYPE SLIS_T_EXTAB,

WA_EXTAB LIKE LINE OF IT_EXTAB.

DATA: USERID LIKE ZSIVA_KA_FE_12-USERID,

WA_USERID LIKE TABLE OF ZSIVA_KA_FE_12 WITH HEADER LINE.

DATA : BEGIN OF WA_HEAD,

VBELN LIKE VBUK-VBELN,

KUNNR LIKE VBAK-KUNNR,

BSTKD LIKE VBKD-BSTKD,

ZTERM LIKE VBKD-ZTERM,

AUTLF LIKE VBAK-AUTLF,

LIFSK LIKE VBAK-LIFSK,

AUGRU LIKE VBAK-AUGRU,

PRSDT LIKE VBKD-PRSDT,

INCO1 LIKE VBKD-INCO1,

INCO2 LIKE VBKD-INCO2,

VSBED LIKE VBAK-VSBED,

EXPAND,

BOX ,

END OF WA_HEAD.

DATA : BEGIN OF WA_ITEM,

VBELN LIKE VBUK-VBELN,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

MAKTX LIKE MAKT-MAKTX,

WERKS LIKE VBAP-WERKS,

VDATU LIKE VBAK-VDATU,

LPRIO LIKE VBAP-LPRIO,

KWMENG LIKE VBAP-KWMENG,

ABGRU LIKE VBAP-ABGRU,

PRSDT LIKE VBKD-PRSDT,

END OF WA_ITEM.

DATA : IT_HEAD LIKE TABLE OF WA_HEAD , "head table

IT_HEADRES LIKE IT_HEAD , "header screen

IT_ITEM LIKE TABLE OF WA_ITEM WITH HEADER LINE, "item table

IT_ITEMRES LIKE IT_ITEM.

DATA : BEGIN OF WA_HEADSCR. "structure for header screen

INCLUDE STRUCTURE WA_HEAD.

DATA : END OF WA_HEADSCR.

DATA : BEGIN OF WA_ITEMSCR. "structure for item screen

INCLUDE STRUCTURE WA_ITEM.

DATA : END OF WA_ITEMSCR.

DATA : IT_HEADSCR LIKE TABLE OF WA_HEADSCR, "i_table for header screen &itemscrenn

IT_ITEMSCR LIKE TABLE OF WA_ITEMSCR.

DATA: NODE_TABLE TYPE TREEV_NTAB,

WA_NODE LIKE LINE OF NODE_TABLE.

DATA : G_KEY TYPE TREEV_NKS WITH HEADER LINE,

WA_REPID TYPE SY-REPID,

WA_KEYINFO TYPE SLIS_KEYINFO_ALV.

DATA : WA_HEADER TYPE BAPISDH1X,

WA_HEADDATA TYPE BAPISDH1,

RETURN LIKE TABLE OF BAPIRET2 WITH HEADER LINE,

RETMSG LIKE TABLE OF BAPIRET2 WITH HEADER LINE,

RETURN1 LIKE TABLE OF BAPIRET2 WITH HEADER LINE.

DATA: IT_FIELDC TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDC LIKE LINE OF IT_FIELDC,

IT_FIELDC1 TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDC1 LIKE LINE OF IT_FIELDC,

U_COMM LIKE SY-UCOMM VALUE '&ETA',

WA_LAYOUT TYPE SLIS_LAYOUT_ALV,

IT_EVENT TYPE SLIS_T_EVENT,

WA_EVENT LIKE LINE OF IT_EVENT.

&--


SELECTION-SCREEN--

SELECTION-SCREEN : BEGIN OF SCREEN 9002 ,

BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001,

SKIP 1.

SELECT-OPTIONS : SALESORG FOR VBAK-VKORG OBLIGATORY DEFAULT '1000',

CHANNEL FOR VBAK-VTWEG OBLIGATORY DEFAULT '10',

DIVISION FOR VBAK-SPART OBLIGATORY DEFAULT '00',

SOLD FOR KUAGV-KUNNR,

SHIP FOR KUWEV-KUNNR,

DOCDATE FOR VBAK-AUDAT,

DOCTYPE FOR VBAK-AUART,

PONUM FOR VBKD-BSTKD,

MATERIAL FOR VBAP-MATNR,

SALESNO FOR VBAK-VBELN,

DELBLK FOR VBAK-LIFSK,

INCO FOR VBKD-INCO1,

INCO2 FOR VBKD-INCO2,

REASON FOR VBAP-ABGRU,

PRICDATE FOR VBKD-PRSDT,

ISSUDATE FOR VBEP-WADAT,

DELDATE FOR VBAK-VDATU,

PLANT FOR VBAP-WERKS.

SELECTION-SCREEN : SKIP 1.

PARAMETER : DELETESO LIKE ZSIVA_KA_FE_12-DELETESALESORDER AS

CHECKBOX.

SELECTION-SCREEN : SKIP 1,

END OF BLOCK BLK1,

END OF SCREEN 9002.

CALL SELECTION-SCREEN 9002.

&----


*& Module PF_STATUS OUTPUT

&----


  • text

----


MODULE PF_STATUS OUTPUT.

SET PF-STATUS 'STATUS1'.

SET TITLEBAR 'TITLE1'.

ENDMODULE. " PF_STATUS OUTPUT

&----


*& Module INIT_PAI INPUT

&----


  • text

----


MODULE INIT_PAI INPUT.

SAVE_CODE = OK_CODE.

CLEAR OK_CODE.

CASE SAVE_CODE.

WHEN 'EXECUTE'.

IF NOT DELETESO EQ 'X'.

IF IT_HEAD IS INITIAL AND

IT_ITEM IS INITIAL.

SELECT A~AUTLF

A~KUNNR

A~VSBED

A~LIFSK

A~AUGRU

B~VBELN

CBSTKD CZTERM CPRSDT CINCO1 C~INCO2

FROM VBUK AS B

INNER JOIN VBAK AS A ON AVBELN = BVBELN

INNER JOIN VBKD AS C ON CVBELN = BVBELN

INTO CORRESPONDING FIELDS OF TABLE IT_HEAD

WHERE B~GBSTK NE 'C' AND

A~VKORG IN SALESORG AND

A~VTWEG IN CHANNEL AND

A~SPART IN DIVISION AND

B~VBELN IN SALESNO.

SELECT A~POSNR

A~MATNR

A~WERKS

A~LPRIO

A~KWMENG

A~ABGRU

B~MAKTX

C~VDATU

D~PRSDT

E~VBELN

FROM VBUK AS E

INNER JOIN VBAP AS A ON AVBELN = EVBELN

INNER JOIN MAKT AS B ON AMATNR = BMATNR AND B~SPRAS = 'EN'

INNER JOIN VBAK AS C ON CVBELN = EVBELN

INNER JOIN VBKD AS D ON DVBELN = EVBELN

INTO CORRESPONDING FIELDS OF TABLE IT_ITEM

WHERE E~GBSTK NE 'C' AND

C~VKORG IN SALESORG AND

C~VTWEG IN CHANNEL AND

C~SPART IN DIVISION AND

E~VBELN IN SALESNO.

ENDIF.

IF SY-SUBRC = 0.

PERFORM KEY_INFO.

PERFORM FILL_LAYOUT.

PERFORM FIELD_CATALOG.

  • PERFORM EVENTS.

PERFORM H_DISPLAY.

ENDIF.

ELSEIF SALESNO <> ' '.

IF ZSIVA_KA_FE_12-DELETESALESORDER = ' '.

MESSAGE i006.

  • CALL SCREEN 9002.

ELSE.

SALESNO = SALESNO-LOW.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = SALESNO

ORDER_HEADER_INX = WA_HEADER

TABLES

RETURN = RETURN.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

IMPORTING

RETURN = RETURN1.

IF RETURN-TYPE = 'S'.

MESSAGE I007 WITH SALESNO.

CLEAR DELETESO.

ELSE.

MESSAGE I007.

CLEAR: DELETESO, SALESNO[].

ENDIF.

ENDIF.

ELSE.

MESSAGE S000(Z243_MESS).

ENDIF.

WHEN 'BACK'.

LEAVE PROGRAM.

ENDCASE.

ENDMODULE. "INIT_PAI INPUT

**********************************REUSE_ALV_HIERSEQ_LIST_DISPLAY***************

FORM H_DISPLAY.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = WA_REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'UCOMMAND'

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDC

IT_EVENTS = IT_EVENT

I_TABNAME_HEADER = 'IT_HEAD'

I_TABNAME_ITEM = 'IT_ITEM'

IS_KEYINFO = WA_KEYINFO

TABLES

T_OUTTAB_HEADER = IT_HEAD

T_OUTTAB_ITEM = IT_ITEM.

ENDFORM. "H_DISPLAY

" INIT_PAI INPUT

&----


*& Module STATUS_9003 OUTPUT

&----


  • text

----


MODULE STATUS_9003 OUTPUT.

SET PF-STATUS 'STATUS3'.

DATA CHECK.

SELECT * FROM ZSIVA_KA_FE_12 INTO TABLE WA_USERID.

IF SY-SUBRC = 0.

READ TABLE WA_USERID WITH KEY USERID = SY-UNAME .

ELSE.

MESSAGE S006(Z243_MESSAGES).

ENDIF.

***************CHECKING CURRENT USER FOR AUTHENTICATION***

IF WA_USERID-SHIP_CONDITION EQ 'X'

AND ZSIVA_KA_FE_12-SHIP_CONDITION NE 'X'.

PERFORM DISABLE USING 'G1'.

ENDIF.

IF WA_USERID-ORDERREASON = 'X' AND ZSIVA_KA_FE_12-ORDERREASON NE 'X' .

PERFORM DISABLE USING 'G2'.

ENDIF.

IF WA_USERID-DEL_BLOCK EQ 'X' AND ZSIVA_KA_FE_12-DEL_BLOCK NE'X'.

PERFORM DISABLE USING 'G3'.

ENDIF.

IF WA_USERID-INCO1 = 'X' AND ZSIVA_KA_FE_12-INCO1 NE 'X'.

PERFORM DISABLE USING 'G4'.

ENDIF.

IF WA_USERID-INCO2 = 'X' AND ZSIVA_KA_FE_12-INCO2 NE 'X'.

PERFORM DISABLE USING 'G5'.

ENDIF.

IF WA_USERID-COMP_DEL_IND = 'X' AND ZSIVA_KA_FE_12-COMP_DEL_IND NE 'X' .

PERFORM DISABLE USING 'G6'.

ENDIF.

IF WA_USERID-SHIPTO = 'X' AND ZSIVA_KA_FE_12-SHIPTO NE 'X'.

PERFORM DISABLE USING 'G7'.

ENDIF.

IF WA_USERID-PRICE_DATE = 'X' AND ZSIVA_KA_FE_12-PRICE_DATE NE 'X'.

PERFORM DISABLE USING 'G8'.

ENDIF.

IF WA_USERID-PAYTERM = 'X' AND ZSIVA_KA_FE_12-PAYTERM NE 'X'.

PERFORM DISABLE USING 'G9'.

ENDIF.

IF WA_USERID-PRICE_DATE_ITEM = 'X' .

PERFORM DISABLE USING 'G10'.

ENDIF.

IF WA_USERID-CUSTPO = 'X' AND ZSIVA_KA_FE_12-CUSTPO NE 'X'.

PERFORM DISABLE USING 'G11'.

ENDIF.

IF WA_USERID-MATERIAL = 'X' AND ZSIVA_KA_FE_12-MATERIAL NE 'X' .

PERFORM DISABLE USING 'G12'.

ENDIF.

IF WA_USERID-QUANTITY = 'X' AND ZSIVA_KA_FE_12-QUANTITY NE 'X'.

PERFORM DISABLE USING 'G13'.

ENDIF.

IF WA_USERID-DEL_PLANT = 'X' AND ZSIVA_KA_FE_12-DEL_PLANT NE 'X'.

PERFORM DISABLE USING 'G14'.

ENDIF.

IF WA_USERID-REJ_REASON = 'X' AND ZSIVA_KA_FE_12-REJ_REASON NE 'X'.

PERFORM DISABLE USING 'G15'.

ENDIF.

IF WA_USERID-DEL_PRIORITY = 'X' AND ZSIVA_KA_FE_12-DEL_PRIORITY NE 'X'.

PERFORM DISABLE USING 'G16'.

ENDIF.

MESSAGE S008(Z243_MESS).

ENDMODULE. " STATUS_9003 OUTPUT

&----


*& Module USER_COMMAND_9003 INPUT

&----


  • text

----


MODULE USER_COMMAND_9003 INPUT.

CASE OK_CODE.

WHEN 'MODIFY'.

LOOP AT IT_HEAD INTO WA_HEAD WHERE BOX = 'X'.

MODIFY IT_HEAD INDEX SY-TABIX FROM WA_HEADSCR TRANSPORTING INCO1 PRSDT ZTERM .

LOOP AT IT_ITEM WHERE VBELN = WA_HEAD-VBELN.

MODIFY IT_ITEM INDEX SY-TABIX FROM WA_ITEMSCR TRANSPORTING MATNR KWMENG.

ENDLOOP.

ENDLOOP.

PERFORM H_DISPLAY.

WHEN 'T1'.

CHECK = 'X'.

IF ZSIVA_KA_FE_12-SHIP_CONDITION = 'X' .

PERFORM TICKON USING 'WA_HEADSCR-VSBED'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-VSBED'.

ENDIF.

WHEN 'T2'.

IF ZSIVA_KA_FE_12-ORDERREASON = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-AUGRU'.

ELSEIF ZSIVA_KA_FE_12-ORDERREASON <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-AUGRU'.

ENDIF.

WHEN 'T3'.

IF ZSIVA_KA_FE_12-DEL_BLOCK = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-LIFSK'.

ELSEIF ZSIVA_KA_FE_12-DEL_BLOCK <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-LIFSK'.

ENDIF.

WHEN 'T4'.

IF ZSIVA_KA_FE_12-INCO1 = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-INCO1'.

ELSEIF ZSIVA_KA_FE_12-INCO1 <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-INCO1'.

ENDIF.

WHEN 'T5'.

IF ZSIVA_KA_FE_12-INCO2 = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-INCO2'.

ELSEIF ZSIVA_KA_FE_12-INCO2 <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-INCO2'.

ENDIF.

WHEN 'T6'.

IF ZSIVA_KA_FE_12-COMP_DEL_IND = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-AUTLF'.

ELSEIF ZSIVA_KA_FE_12-COMP_DEL_IND <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-AUTLF'.

ENDIF.

WHEN 'T7'.

IF ZSIVA_KA_FE_12-SHIPTO = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-KUNNR'.

ELSEIF ZSIVA_KA_FE_12-SHIPTO <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-KUNNR'.

ENDIF.

WHEN 'T8'.

IF ZSIVA_KA_FE_12-PRICE_DATE = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-PRSDT'.

ELSEIF ZSIVA_KA_FE_12-PRICE_DATE <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-PRSDT'.

ENDIF.

WHEN 'T9'.

IF ZSIVA_KA_FE_12-PAYTERM = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-ZTERM'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-ZTERM'.

ENDIF.

WHEN 'T11'.

IF ZSIVA_KA_FE_12-CUSTPO = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-BSTKD'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-BSTKD'.

ENDIF.

WHEN 'T12'.

IF ZSIVA_KA_FE_12-MATERIAL = 'X'.

PERFORM TICKON USING 'WA_ITEMSCR-MATNR'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_ITEMSCR-MATNR'.

ENDIF.

WHEN 'T13'.

IF ZSIVA_KA_FE_12-QUANTITY = 'X'.

PERFORM TICKON USING 'WA_ITEMSCR-KWMENG'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_ITEMSCR-KWMENG'.

ENDIF.

WHEN 'T14'.

IF ZSIVA_KA_FE_12-DEL_PLANT = 'X'.

PERFORM TICKON USING 'WA_ITEMSCR-WERKS'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_ITEMSCR-WERKS'.

ENDIF.

WHEN 'T15'.

IF ZSIVA_KA_FE_12-REJ_REASON = 'X'.

PERFORM TICKON USING 'WA_ITEMSCR-ABGRU'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_ITEMSCR-ABGRU'.

ENDIF.

WHEN 'T16'.

IF ZSIVA_KA_FE_12-DEL_PRIORITY = 'X'.

PERFORM TICKON USING 'WA_ITEMSCR-LPRIO'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_ITEMSCR-LPRIO'.

ENDIF.

WHEN 'BACK'.

CALL SCREEN 9002.

ENDCASE.

ENDMODULE. " USER_COMMAND_9003 INPUT

&----


*& Form DISABLE

&----


  • text

----


  • DISABLING THE FIELDS ACCORDING TO THE AUTHORITY

----


FORM DISABLE USING GRP.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = GRP.

SCREEN-INPUT = '1'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDFORM. "DISABLE

&----


*& Form KEY_INFO

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM KEY_INFO .

WA_KEYINFO-HEADER01 = 'VBELN'.

WA_KEYINFO-ITEM01 = 'VBELN'.

WA_REPID = SY-REPID.

ENDFORM. " KEY_INFO

&----


*& Form FIELD_CATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FIELD_CATALOG .

CLEAR WA_FIELDC.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = WA_REPID

I_INTERNAL_TABNAME = 'IT_HEAD' "I_INTERNAL_TABNAME

I_STRUCTURE_NAME = 'Z243_HEADER' "I_STRUCTURE_NAME

I_CLIENT_NEVER_DISPLAY = 'X'

CHANGING

CT_FIELDCAT = IT_FIELDC.

DELETE IT_FIELDC WHERE FIELDNAME <> 'AUTLF' AND

FIELDNAME <> 'KUNNR' AND

FIELDNAME <> 'VSBED' AND

FIELDNAME <> 'LIFSK' AND

FIELDNAME <> 'AUGRU' AND

FIELDNAME <> 'VBELN' AND

FIELDNAME <> 'BSTKD' AND

FIELDNAME <> 'ZTERM' AND

FIELDNAME <> 'PRSDT' AND

FIELDNAME <> 'INCO1' AND

FIELDNAME <> 'INCO2' .

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = WA_REPID

I_INTERNAL_TABNAME = 'IT_ITEM' "I_INTERNAL_TABNAME

I_STRUCTURE_NAME = 'Z243_ITEM' "I_STRUCTURE_NAME

CHANGING

CT_FIELDCAT = IT_FIELDC1.

DELETE IT_FIELDC1 WHERE FIELDNAME <> 'POSNR' AND

FIELDNAME <> 'MATNR' AND

FIELDNAME <> ' WERKS' AND

FIELDNAME <> 'LPRIO' AND

FIELDNAME <> 'KWMENG' AND

FIELDNAME <> 'ABGRU' AND

FIELDNAME <> 'MAKTX' AND

FIELDNAME <> 'VDATU' AND

FIELDNAME <> 'PRSDT' AND

FIELDNAME <> 'VBELN' .

LOOP AT IT_FIELDC1 INTO WA_FIELDC.

APPEND WA_FIELDC TO IT_FIELDC.

ENDLOOP.

ENDFORM. " FIELD_CATALOG

&----


*& Form FILL_LAYOUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_LAYOUT .

WA_LAYOUT-ZEBRA = 'X'.

WA_LAYOUT-EXPAND_FIELDNAME = 'EXPAND'. "FOR EXPANDING

WA_LAYOUT-EXPAND_ALL = 'X'.

WA_LAYOUT-BOX_FIELDNAME = 'BOX'.

WA_LAYOUT-BOX_TABNAME = 'IT_HEAD'.

WA_LAYOUT-KEY_HOTSPOT = 'X'.

WA_LAYOUT-F2CODE = U_COMM.

WA_LAYOUT-DETAIL_POPUP = 'X'.

WA_LAYOUT-LIGHTS_CONDENSE = 'X'.

ENDFORM. " FILL_LAYOUT

&----


*& Form STATUS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'SBAR' EXCLUDING RT_EXTAB.

SET TITLEBAR 'TITLE2'.

ENDFORM. " STATUS

&----


*& Form ucomm

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM UCOMMAND USING R_COMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD .

CASE R_COMM.

WHEN 'UP'.

LOOP AT IT_HEAD INTO WA_HEAD WHERE BOX = 'X'.

APPEND WA_HEAD TO IT_HEADSCR.

ENDLOOP.

CALL SCREEN 9003.

WHEN 'UPS'.

DATA RETANS.

DATA LEN(2) TYPE N.

DATA QUESTION(75) TYPE C.

DESCRIBE TABLE IT_HEADSCR LINES LEN.

CONCATENATE LEN TEXT-002 INTO QUESTION.

CALL FUNCTION 'POPUP_TO_CONFIRM'

EXPORTING

TITLEBAR = 'Sales Order selected for Changes'

TEXT_QUESTION = QUESTION

TEXT_BUTTON_1 = 'Yes'

ICON_BUTTON_1 = 'ICON_OKAY'

TEXT_BUTTON_2 = 'No'

ICON_BUTTON_2 = 'ICON_CANCEL'

DISPLAY_CANCEL_BUTTON = ' '

IV_QUICKINFO_BUTTON_1 = 'CONFIRM CHANGE'

IV_QUICKINFO_BUTTON_2 = 'CANCEL CHANGE'

IMPORTING

ANSWER = RETANS

EXCEPTIONS

TEXT_NOT_FOUND = 1

OTHERS = 2.

IF SY-SUBRC <> 0.

LEAVE TO LIST-PROCESSING.

SET PF-STATUS SPACE.

WRITE / SY-SUBRC.

ENDIF.

IF RETANS = 1.

PERFORM BAPI.

ENDIF..

ENDCASE.

ENDFORM. " ucomm

&----


*& Form BAPI

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BAPI .

CLEAR: RETURN[], RETURN1[].

WA_HEADER-UPDATEFLAG = 'U'.

WA_HEADER-PURCH_NO_C = 'X'.

WA_HEADER-PMNTTRMS = 'X'.

WA_HEADER-INCOTERMS1 = 'X'.

WA_HEADER-SHIP_COND = 'X'.

LOOP AT IT_HEAD INTO WA_HEAD WHERE BOX ='X'.

READ TABLE IT_HEAD INTO WA_HEAD WITH KEY VBELN = WA_HEAD-VBELN.

WA_HEADDATA-PURCH_NO_C = WA_HEAD-BSTKD.

WA_HEADDATA-PMNTTRMS = WA_HEAD-ZTERM.

WA_HEADDATA-INCOTERMS1 = WA_HEAD-INCO1.

WA_HEADDATA-SHIP_COND = WA_HEAD-VSBED.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = WA_HEAD-VBELN

ORDER_HEADER_IN = WA_HEADDATA

ORDER_HEADER_INX = WA_HEADER

TABLES

RETURN = RETURN.

LOOP AT RETURN.

MOVE-CORRESPONDING RETURN TO RETMSG.

APPEND RETMSG.

ENDLOOP.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

IMPORTING

RETURN = RETURN1.

ENDLOOP.

PERFORM POPUP.

ENDFORM. " BAPI

&----


*& Form POPUP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM POPUP .

DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

DATA : BEGIN OF WA_DATATAB,

TYPE(4) TYPE C,

MSG LIKE RETURN-MESSAGE,

END OF WA_DATATAB,

IT_DATATAB LIKE TABLE OF WA_DATATAB.

IF IT_FCAT IS INITIAL.

IT_FCAT-FIELDNAME = 'TYPE'.

IT_FCAT-TABNAME = 'IT_DATATAB'.

IT_FCAT-SELTEXT_L = 'TYPE'.

IT_FCAT-OUTPUTLEN = 10.

APPEND IT_FCAT.

CLEAR IT_FCAT.

IT_FCAT-FIELDNAME = 'MSG'.

IT_FCAT-TABNAME = 'IT_DATATAB'.

IT_FCAT-SELTEXT_L = 'MESSAGE'.

IT_FCAT-OUTPUTLEN = 70.

APPEND IT_FCAT.

ENDIF.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_GRID_TITLE = 'BAPI Return Messages'

IT_FIELDCAT = IT_FCAT[]

I_SCREEN_START_COLUMN = 10

I_SCREEN_START_LINE = 5

I_SCREEN_END_COLUMN = 100

I_SCREEN_END_LINE = 20

TABLES

T_OUTTAB = RETMSG.

*

  • LEAVE TO LIST-PROCESSING.

  • SET PF-STATUS SPACE.

*

  • LOOP AT RETMSG.

  • WRITE RETMSG-MESSAGE.

  • ENDLOOP.

ENDFORM. " POPUP

" INIT OUTPUT

&----


*& Form TICKON

&----


  • text

----


  • -->P_1345 text

----


FORM TICKON USING SON .

LOOP AT SCREEN.

IF SCREEN-NAME = SON.

SCREEN-INPUT = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDFORM. " TICKON

&----


*& Form TICKOFF

&----


  • text

----


  • -->P_1353 text

----


FORM TICKOFF USING SOFF.

LOOP AT SCREEN.

IF SCREEN-NAME = SOFF.

SCREEN-INPUT = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDFORM. " TICKOFF

<b>Reward points if you find this Helpful</b>

Regards

Siva

3 REPLIES 3
Read only

Former Member
0 Likes
625

Hi Ram,

BAPI stands for Business API(Application Program Interface).

A BAPI is remotely enabled function module ie it can be invoked from remote programs like standalone JAVA programs, web interface etc..

You can make your function module remotely enabled in attributes of Function module but

A BAPI are standard SAP function modules provided by SAP for remote access. Also they are part of Businees Objest Repository(BOR).

BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.

The following standardized BAPIs are provided:

Reading instances of SAP business objects

GetList ( ) With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.

The BAPI GetList() is a class method.

GetDetail() With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The instance is identified via its key. The BAPI GetDetail() is an instance method. BAPIs that can create, change or delete instances of a business object type

The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example, if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.

Create( ) and CreateFromData! ( )

The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods.

Change( )

The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is an instance method.

Delete( ) and Undelete( ) The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.

The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.

Cancel ( ) Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method.

Add<subobject> ( ) and Remove<subobject> ( ) The BAPI Add<subobject> adds a subobject to an existing object inst! ance and the BAPI and Remove<subobject> removes a subobject from an object instance. These BAPIs are instance methods.

ex BAPI:

API_SALESORDER_CREATEFROMDAT1

BAPI_SALESORDER_CREATEFROMDAT2

You can get good help form the following links,

BAPI-step by step

http://www.sapgenie.com/abap/bapi/example.htm

list of all bapis

http://www.planetsap.com/LIST_ALL_BAPIs.htm

for BAPI's

http://www.sappoint.com/abap/bapiintro.pdf

http://www.sappoint.com/abap/bapiprg.pdf

http://www.sappoint.com/abap/bapiactx.pdf

http://www.sappoint.com/abap/bapilst.pdf

http://www.sappoint.com/abap/bapiexer.pdf

http://service.sap.com/ale

http://service.sap.com/bapi

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf

http://www.planetsap.com/Bapi_main_page.htm

http://www.topxml.com/sap/sap_idoc_xml.asp

http://www.sapdevelopment.co.uk/

http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf

Also refer to the following links..

www.sappoint.com/abap/bapiintro.pdf

www.sap-img.com/bapi.htm

www.sap-img.com/abap/bapi-conventions.htm

www.planetsap.com/Bapi_main_page.htm

www.sapgenie.com/abap/bapi/index.htm

Checkout !!

http://searchsap.techtarget.com/originalContent/0,289142,sid21_gci948835,00.html

http://techrepublic.com.com/5100-6329-1051160.html#

http://www.sap-img.com/bapi.htm

http://www.sap-img.com/abap/bapi-conventions.htm

http://www.sappoint.com/abap/bapiintro.pdf

http://sap-img.com/bapi.htm

EG::

Here is the step by step procedure for creating BAPIs.

There are 5 different steps in BAPI.

- Create BAPI Structure

- Create BAPI Function Module or API Method.

- Create BAPI object

- Release BAPI Function Module.

- Release BAPI object.

Step1. Creating BAPI Structure:

- Go to <SE11>.

- Select Data Type & Enter a name.

- Click on Create.

- Note: Always BAPI should be in a development class with request number (Not Local Object).

- Select Structure & hit ENTER.

- Enter the fields from your database. Make sure that the first field is the Primary Key Field.

- Then SAVE & ACTIVATE.

Step 2. Creating BAPI module:

- Enter TR.CODE <SE37>.

- Before entering any thing, from the present screen that you are in, select the menu

Goto -> Function Groups -> Create Group.

Enter a name (Note: This name Must start with ZBAPI)

Let this screen be as it is and open another window and there, enter TR.CODE <SE80).

Click on the Third ICON that says Inactive Objects.

Select the group that you just created and click on Activate.

Notice that the group you created will disappear from the list of inactive objects.

- Go back to ><SE37> screen and enter a name and hit <ENTER>. Then enter the group name that you just created and activated.

NOTE: When you release a function module the respective group will be attached to that particular application. It cannot be used for any other application. NEVER include an already existing group that is attached to another module.

Now click on the first Tab that says [ATTRIBUTES] and select the radio button that says remote-enabled module since we will be accessing this from any external system.

Then click on the second tab that says [IMPORT].

Enter a PARAMETER NAME, TYPE and the structure you created in the first step. Also select the check box ‘Pa’. All remotely enabled functional modules MUST be Pa enabled, where Pa means ‘Passed by Value’ and if you don’t select ‘Pa’, then that means it will be passed by reference..

Then click on tab that says [EXPORT].

Enter the following as is in the first three fields

RETURN TYPE BAPIRETURN (These 3 field values are always same)

Here also select ‘Pa’ meaning Pass by value.

Note: BAPIRETURN contains structure with message fields.

Then SAVE and ACTIVATE.

Step 3. Creating BAPI object:

- Enter Tr.Code <SWO1> (Note. It is letter ‘O’ and not Zero).

- Enter a name and then click on create. Enter details.

NOTE: Make sure that that Object Type and Program name are SAME.

- Enter Application ‘M’, if you are using standard table Mara. If you are using your own database then select ‘Z’ at the bottom.

- Then hit <ENTER>.

- Now we have to add ‘Methods’. High light METHODS and then select the following from the menu:

Goto Utilities -> API Methods -> Add Methods.

- Enter function Module name and hit <ENTER>.

- Select the second FORWARD ARROW button (>)to go to next step.

- Check if every thing looks ok and again click on FORWARD ARROW button (>).

- Then select ‘YES’ and click on <SAVE>.

- Now on a different screen goto TR.CODE <SE37>. Enter Function Module name and select from the top menu Function Module -> Release -> Release.

- Goback to TR.CODE <SWO1>.

Here select the menu combination shown below in the same order.

- Edit -> Change Release Status -> Object Type Component -> To Implemented.

- Edit -> Change Release Status -> Object Type Component -> To Released.

- Edit -> Change Release Status -> Object Type -> To Implemented.

- Edit -> Change Release Status -> Object Type -> To Released.

- Then click on <SAVE>.

- Then click on Generate Button (4th button from left hand side looks like spinning wheel).

- Then Click on the button that says ‘PROGRAM’ to see the source code.

To check if this is present in work flow goto TR.CODE <BAPI>.

Here it shows business object repository.

- First click on the middle button and then select “ALL” and hit ENTER.

- Goto tab [ALPHABETICAL] and look for the object that you created. This shows that the BAPI object has been created successfully

Reward points if helpful.

Thanks

Naveen khan

Read only

Former Member
0 Likes
625

Check the example code :

&----


*& Report ZNA_SH_CREATE_CHANGE_SO_BAPI

*&

&----


*&

*&

&----


report zna_sh_create_change_so_bapi message-id z7new.

*Internal table declaration for Creating SO

data: i_header type bapisdhd1.

data: i_details type bapisditm occurs 0 with header line.

data: i_partner type bapiparnr occurs 0 with header line.

data: i_return1 type bapiret2 occurs 0 with header line.

data: i_return2 type bapiret2.

*Work Area declaration for Creating SO

data: wa_return1 type bapiret2.

data: wa_header type bapisdhd1.

data: wa_partner type bapiparnr.

data: wa_flag type bapisdhd1x.

data: ok_code type sy-ucomm.

data: n type i.

*Declaration's for changing SO

*Type Declaration for Item table

types: begin of type_vbap,

vbeln type vbeln_va,

posnr type posnr_va,

werks type werks_ext,

lgort type lgort_d,

zmeng type dzmeng,

zieme type dzieme,

end of type_vbap.

data: i_flag like bapisdh1x occurs 0 with header line.

data: i_vbap type standard table of type_vbap.

data: wa_vbap type type_vbap.

data: i_bapisditm type bapisditm occurs 0 with header line,

i_bapisditmx type bapisditmx occurs 0 with header line.

data: p_vbeln type vbak-vbeln.

data: v_vbeln type bapivbeln-vbeln.

parameters : rad1 radiobutton group g1 ,

rad2 radiobutton group g1.

selection-screen begin of screen 12 as window title creat_so.

parameters: o_vkorg type vkorg, "Sales Organization

o_vtweg type vtweg, "Distribution Channel

o_spart type spart, "Division

o_auart type auart, "Sales Doc Type

o_matnr type matnr, "Material No.

o_parvw type parvw, "Partner Role

o_kunnr type kunnr. "Partner Number

selection-screen end of screen 12.

selection-screen begin of screen 123 as window title chang_so.

parameters: o_vbeln type vbeln. "sales doc. no.

selection-screen end of screen 123.

start-of-selection.

if rad1 = 'X'.

call selection-screen '12'.

else.

call selection-screen '123'.

endif.

if rad1 = 'X'.

i_header-doc_type = o_auart.

i_header-sales_org = o_vkorg.

i_header-distr_chan = o_vtweg.

i_header-division = o_spart.

i_partner-partn_role = o_parvw.

i_partner-partn_numb = o_kunnr.

append i_partner.

i_details-material = o_matnr.

append i_details.

call function 'BAPI_SALESORDER_CREATEFROMDAT2'

exporting

order_header_in = i_header

importing

salesdocument = v_vbeln

tables

return = i_return1

order_items_in = i_details

order_partners = i_partner.

if not v_vbeln is initial.

call function 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT =

importing

return = i_return2

.

else.

call function 'BAPI_TRANSACTION_ROLLBACK'

  • IMPORTING

  • RETURN =

.

endif.

loop at i_return1 into wa_return1.

write:/ wa_return1-message.

endloop.

--


For Changing SO--

else.

call screen '0101'.

endif.

&----


*& Module STATUS_0101 OUTPUT

&----


  • text

----


module status_0101 output.

  • SET PF-STATUS 'xxxxxxxx'.

  • SET TITLEBAR 'xxx'.

p_vbeln = o_vbeln.

refresh: i_flag,

i_bapisditm,

i_bapisditmx,

i_return1.

if i_vbap[] is initial.

select

vbeln

posnr

werks

lgort

zmeng

zieme

from vbap into table i_vbap where

vbeln = p_vbeln.

n = 1.

endif.

read table i_vbap into wa_vbap index n."with key vbeln = p_vbeln.

n = n + 1.

endmodule. " STATUS_0101 OUTPUT

&----


*& Module USER_COMMAND_0101 INPUT

&----


  • text

----


module user_command_0101 input.

case ok_code.

when 'CHA1'.

sort i_vbap by posnr.

loop at i_vbap into wa_vbap .

i_flag-updateflag = 'U'.

append i_flag.

i_bapisditm-itm_number = wa_vbap-posnr.

i_bapisditm-plant = wa_vbap-werks.

i_bapisditm-store_loc = wa_vbap-lgort.

i_bapisditm-target_qty = wa_vbap-zmeng.

i_bapisditm-target_qu = wa_vbap-zieme.

append i_bapisditm.

i_bapisditmx-itm_number = wa_vbap-posnr.

i_bapisditmx-updateflag = 'U'.

i_bapisditmx-po_itm_no = 'U'.

i_bapisditmx-plant = 'U'.

i_bapisditmx-store_loc = 'U'.

i_bapisditmx-target_qty = 'U'.

i_bapisditmx-target_qu = 'U'.

append i_bapisditmx.

call function 'BAPI_SALESORDER_CHANGE'

exporting

salesdocument = p_vbeln

order_header_inx = i_flag

tables

return = i_return1

order_item_in = i_bapisditm

order_item_inx = i_bapisditmx.

call function 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT =

importing

return = i_return2.

clear wa_vbap.

call screen '0101'.

endloop.

  • WRITE:/ 'Status ' , i_return1-type.

  • WRITE:/ 'Reason ' , i_return1-message.

  • CLEAR i_return1.

  • REFRESH i_return1.

when 'EXI1'.

leave program.

endcase.

endmodule. " USER_COMMAND_0101 INPUT

text elements :

O_AUART DOCUMENT TYPE

O_KUNNR CUSTOMER NUMBER

O_MATNR MATERIAL NUMBER

O_PARVW PARTNER FUNCTION

O_SPART DIVISION

O_VBELN SALES DOCUMNET NO.

O_VKORG SALES ORGANIZATION

O_VTWEG DISTRIBUTION CHANNEL

RAD1 FOR CREATING SALES ORDER

RAD2 FOR CHANGING SALES ORDER

S_AUART DOCUMENT TYPE

S_KUNNR CUSTOMER NUMBER

S_MATNR MATERIAL NUMBER

S_PARVW PARTNER FUNCTION

S_SPART DIVISION

S_VBELN SALES DOCUMNET NO.

S_VKORG SALES ORGANIZATION

S_VTWEG DISTRIBUTION CHANNEL

First goto VA01 Transaction ,create sales order manually and see the results.

use same values in program and see the results

Thanks

Seshu

Read only

Former Member
0 Likes
626

hi,

check out this program,this may giv you some idea of creating a sales order thru BAPI

&----


*& Report ZSALESORDER243

*&

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

REPORT ZSALESORDER243 MESSAGE-ID Z243_MESS.

TYPE-POOLS : SLIS.

TABLES : ZSIVA_KA_FE_12,

VBAK,

KUAGV,

KUWEV,

VBAP,

VBKD,

VBEP,

VBUK.

&--


GLOBAL DECLARATION--

DATA: OK_CODE LIKE SY-UCOMM, "user command

SAVE_CODE LIKE OK_CODE.

DATA: IT_EXTAB TYPE SLIS_T_EXTAB,

WA_EXTAB LIKE LINE OF IT_EXTAB.

DATA: USERID LIKE ZSIVA_KA_FE_12-USERID,

WA_USERID LIKE TABLE OF ZSIVA_KA_FE_12 WITH HEADER LINE.

DATA : BEGIN OF WA_HEAD,

VBELN LIKE VBUK-VBELN,

KUNNR LIKE VBAK-KUNNR,

BSTKD LIKE VBKD-BSTKD,

ZTERM LIKE VBKD-ZTERM,

AUTLF LIKE VBAK-AUTLF,

LIFSK LIKE VBAK-LIFSK,

AUGRU LIKE VBAK-AUGRU,

PRSDT LIKE VBKD-PRSDT,

INCO1 LIKE VBKD-INCO1,

INCO2 LIKE VBKD-INCO2,

VSBED LIKE VBAK-VSBED,

EXPAND,

BOX ,

END OF WA_HEAD.

DATA : BEGIN OF WA_ITEM,

VBELN LIKE VBUK-VBELN,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

MAKTX LIKE MAKT-MAKTX,

WERKS LIKE VBAP-WERKS,

VDATU LIKE VBAK-VDATU,

LPRIO LIKE VBAP-LPRIO,

KWMENG LIKE VBAP-KWMENG,

ABGRU LIKE VBAP-ABGRU,

PRSDT LIKE VBKD-PRSDT,

END OF WA_ITEM.

DATA : IT_HEAD LIKE TABLE OF WA_HEAD , "head table

IT_HEADRES LIKE IT_HEAD , "header screen

IT_ITEM LIKE TABLE OF WA_ITEM WITH HEADER LINE, "item table

IT_ITEMRES LIKE IT_ITEM.

DATA : BEGIN OF WA_HEADSCR. "structure for header screen

INCLUDE STRUCTURE WA_HEAD.

DATA : END OF WA_HEADSCR.

DATA : BEGIN OF WA_ITEMSCR. "structure for item screen

INCLUDE STRUCTURE WA_ITEM.

DATA : END OF WA_ITEMSCR.

DATA : IT_HEADSCR LIKE TABLE OF WA_HEADSCR, "i_table for header screen &itemscrenn

IT_ITEMSCR LIKE TABLE OF WA_ITEMSCR.

DATA: NODE_TABLE TYPE TREEV_NTAB,

WA_NODE LIKE LINE OF NODE_TABLE.

DATA : G_KEY TYPE TREEV_NKS WITH HEADER LINE,

WA_REPID TYPE SY-REPID,

WA_KEYINFO TYPE SLIS_KEYINFO_ALV.

DATA : WA_HEADER TYPE BAPISDH1X,

WA_HEADDATA TYPE BAPISDH1,

RETURN LIKE TABLE OF BAPIRET2 WITH HEADER LINE,

RETMSG LIKE TABLE OF BAPIRET2 WITH HEADER LINE,

RETURN1 LIKE TABLE OF BAPIRET2 WITH HEADER LINE.

DATA: IT_FIELDC TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDC LIKE LINE OF IT_FIELDC,

IT_FIELDC1 TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDC1 LIKE LINE OF IT_FIELDC,

U_COMM LIKE SY-UCOMM VALUE '&ETA',

WA_LAYOUT TYPE SLIS_LAYOUT_ALV,

IT_EVENT TYPE SLIS_T_EVENT,

WA_EVENT LIKE LINE OF IT_EVENT.

&--


SELECTION-SCREEN--

SELECTION-SCREEN : BEGIN OF SCREEN 9002 ,

BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001,

SKIP 1.

SELECT-OPTIONS : SALESORG FOR VBAK-VKORG OBLIGATORY DEFAULT '1000',

CHANNEL FOR VBAK-VTWEG OBLIGATORY DEFAULT '10',

DIVISION FOR VBAK-SPART OBLIGATORY DEFAULT '00',

SOLD FOR KUAGV-KUNNR,

SHIP FOR KUWEV-KUNNR,

DOCDATE FOR VBAK-AUDAT,

DOCTYPE FOR VBAK-AUART,

PONUM FOR VBKD-BSTKD,

MATERIAL FOR VBAP-MATNR,

SALESNO FOR VBAK-VBELN,

DELBLK FOR VBAK-LIFSK,

INCO FOR VBKD-INCO1,

INCO2 FOR VBKD-INCO2,

REASON FOR VBAP-ABGRU,

PRICDATE FOR VBKD-PRSDT,

ISSUDATE FOR VBEP-WADAT,

DELDATE FOR VBAK-VDATU,

PLANT FOR VBAP-WERKS.

SELECTION-SCREEN : SKIP 1.

PARAMETER : DELETESO LIKE ZSIVA_KA_FE_12-DELETESALESORDER AS

CHECKBOX.

SELECTION-SCREEN : SKIP 1,

END OF BLOCK BLK1,

END OF SCREEN 9002.

CALL SELECTION-SCREEN 9002.

&----


*& Module PF_STATUS OUTPUT

&----


  • text

----


MODULE PF_STATUS OUTPUT.

SET PF-STATUS 'STATUS1'.

SET TITLEBAR 'TITLE1'.

ENDMODULE. " PF_STATUS OUTPUT

&----


*& Module INIT_PAI INPUT

&----


  • text

----


MODULE INIT_PAI INPUT.

SAVE_CODE = OK_CODE.

CLEAR OK_CODE.

CASE SAVE_CODE.

WHEN 'EXECUTE'.

IF NOT DELETESO EQ 'X'.

IF IT_HEAD IS INITIAL AND

IT_ITEM IS INITIAL.

SELECT A~AUTLF

A~KUNNR

A~VSBED

A~LIFSK

A~AUGRU

B~VBELN

CBSTKD CZTERM CPRSDT CINCO1 C~INCO2

FROM VBUK AS B

INNER JOIN VBAK AS A ON AVBELN = BVBELN

INNER JOIN VBKD AS C ON CVBELN = BVBELN

INTO CORRESPONDING FIELDS OF TABLE IT_HEAD

WHERE B~GBSTK NE 'C' AND

A~VKORG IN SALESORG AND

A~VTWEG IN CHANNEL AND

A~SPART IN DIVISION AND

B~VBELN IN SALESNO.

SELECT A~POSNR

A~MATNR

A~WERKS

A~LPRIO

A~KWMENG

A~ABGRU

B~MAKTX

C~VDATU

D~PRSDT

E~VBELN

FROM VBUK AS E

INNER JOIN VBAP AS A ON AVBELN = EVBELN

INNER JOIN MAKT AS B ON AMATNR = BMATNR AND B~SPRAS = 'EN'

INNER JOIN VBAK AS C ON CVBELN = EVBELN

INNER JOIN VBKD AS D ON DVBELN = EVBELN

INTO CORRESPONDING FIELDS OF TABLE IT_ITEM

WHERE E~GBSTK NE 'C' AND

C~VKORG IN SALESORG AND

C~VTWEG IN CHANNEL AND

C~SPART IN DIVISION AND

E~VBELN IN SALESNO.

ENDIF.

IF SY-SUBRC = 0.

PERFORM KEY_INFO.

PERFORM FILL_LAYOUT.

PERFORM FIELD_CATALOG.

  • PERFORM EVENTS.

PERFORM H_DISPLAY.

ENDIF.

ELSEIF SALESNO <> ' '.

IF ZSIVA_KA_FE_12-DELETESALESORDER = ' '.

MESSAGE i006.

  • CALL SCREEN 9002.

ELSE.

SALESNO = SALESNO-LOW.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = SALESNO

ORDER_HEADER_INX = WA_HEADER

TABLES

RETURN = RETURN.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

IMPORTING

RETURN = RETURN1.

IF RETURN-TYPE = 'S'.

MESSAGE I007 WITH SALESNO.

CLEAR DELETESO.

ELSE.

MESSAGE I007.

CLEAR: DELETESO, SALESNO[].

ENDIF.

ENDIF.

ELSE.

MESSAGE S000(Z243_MESS).

ENDIF.

WHEN 'BACK'.

LEAVE PROGRAM.

ENDCASE.

ENDMODULE. "INIT_PAI INPUT

**********************************REUSE_ALV_HIERSEQ_LIST_DISPLAY***************

FORM H_DISPLAY.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = WA_REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'UCOMMAND'

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDC

IT_EVENTS = IT_EVENT

I_TABNAME_HEADER = 'IT_HEAD'

I_TABNAME_ITEM = 'IT_ITEM'

IS_KEYINFO = WA_KEYINFO

TABLES

T_OUTTAB_HEADER = IT_HEAD

T_OUTTAB_ITEM = IT_ITEM.

ENDFORM. "H_DISPLAY

" INIT_PAI INPUT

&----


*& Module STATUS_9003 OUTPUT

&----


  • text

----


MODULE STATUS_9003 OUTPUT.

SET PF-STATUS 'STATUS3'.

DATA CHECK.

SELECT * FROM ZSIVA_KA_FE_12 INTO TABLE WA_USERID.

IF SY-SUBRC = 0.

READ TABLE WA_USERID WITH KEY USERID = SY-UNAME .

ELSE.

MESSAGE S006(Z243_MESSAGES).

ENDIF.

***************CHECKING CURRENT USER FOR AUTHENTICATION***

IF WA_USERID-SHIP_CONDITION EQ 'X'

AND ZSIVA_KA_FE_12-SHIP_CONDITION NE 'X'.

PERFORM DISABLE USING 'G1'.

ENDIF.

IF WA_USERID-ORDERREASON = 'X' AND ZSIVA_KA_FE_12-ORDERREASON NE 'X' .

PERFORM DISABLE USING 'G2'.

ENDIF.

IF WA_USERID-DEL_BLOCK EQ 'X' AND ZSIVA_KA_FE_12-DEL_BLOCK NE'X'.

PERFORM DISABLE USING 'G3'.

ENDIF.

IF WA_USERID-INCO1 = 'X' AND ZSIVA_KA_FE_12-INCO1 NE 'X'.

PERFORM DISABLE USING 'G4'.

ENDIF.

IF WA_USERID-INCO2 = 'X' AND ZSIVA_KA_FE_12-INCO2 NE 'X'.

PERFORM DISABLE USING 'G5'.

ENDIF.

IF WA_USERID-COMP_DEL_IND = 'X' AND ZSIVA_KA_FE_12-COMP_DEL_IND NE 'X' .

PERFORM DISABLE USING 'G6'.

ENDIF.

IF WA_USERID-SHIPTO = 'X' AND ZSIVA_KA_FE_12-SHIPTO NE 'X'.

PERFORM DISABLE USING 'G7'.

ENDIF.

IF WA_USERID-PRICE_DATE = 'X' AND ZSIVA_KA_FE_12-PRICE_DATE NE 'X'.

PERFORM DISABLE USING 'G8'.

ENDIF.

IF WA_USERID-PAYTERM = 'X' AND ZSIVA_KA_FE_12-PAYTERM NE 'X'.

PERFORM DISABLE USING 'G9'.

ENDIF.

IF WA_USERID-PRICE_DATE_ITEM = 'X' .

PERFORM DISABLE USING 'G10'.

ENDIF.

IF WA_USERID-CUSTPO = 'X' AND ZSIVA_KA_FE_12-CUSTPO NE 'X'.

PERFORM DISABLE USING 'G11'.

ENDIF.

IF WA_USERID-MATERIAL = 'X' AND ZSIVA_KA_FE_12-MATERIAL NE 'X' .

PERFORM DISABLE USING 'G12'.

ENDIF.

IF WA_USERID-QUANTITY = 'X' AND ZSIVA_KA_FE_12-QUANTITY NE 'X'.

PERFORM DISABLE USING 'G13'.

ENDIF.

IF WA_USERID-DEL_PLANT = 'X' AND ZSIVA_KA_FE_12-DEL_PLANT NE 'X'.

PERFORM DISABLE USING 'G14'.

ENDIF.

IF WA_USERID-REJ_REASON = 'X' AND ZSIVA_KA_FE_12-REJ_REASON NE 'X'.

PERFORM DISABLE USING 'G15'.

ENDIF.

IF WA_USERID-DEL_PRIORITY = 'X' AND ZSIVA_KA_FE_12-DEL_PRIORITY NE 'X'.

PERFORM DISABLE USING 'G16'.

ENDIF.

MESSAGE S008(Z243_MESS).

ENDMODULE. " STATUS_9003 OUTPUT

&----


*& Module USER_COMMAND_9003 INPUT

&----


  • text

----


MODULE USER_COMMAND_9003 INPUT.

CASE OK_CODE.

WHEN 'MODIFY'.

LOOP AT IT_HEAD INTO WA_HEAD WHERE BOX = 'X'.

MODIFY IT_HEAD INDEX SY-TABIX FROM WA_HEADSCR TRANSPORTING INCO1 PRSDT ZTERM .

LOOP AT IT_ITEM WHERE VBELN = WA_HEAD-VBELN.

MODIFY IT_ITEM INDEX SY-TABIX FROM WA_ITEMSCR TRANSPORTING MATNR KWMENG.

ENDLOOP.

ENDLOOP.

PERFORM H_DISPLAY.

WHEN 'T1'.

CHECK = 'X'.

IF ZSIVA_KA_FE_12-SHIP_CONDITION = 'X' .

PERFORM TICKON USING 'WA_HEADSCR-VSBED'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-VSBED'.

ENDIF.

WHEN 'T2'.

IF ZSIVA_KA_FE_12-ORDERREASON = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-AUGRU'.

ELSEIF ZSIVA_KA_FE_12-ORDERREASON <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-AUGRU'.

ENDIF.

WHEN 'T3'.

IF ZSIVA_KA_FE_12-DEL_BLOCK = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-LIFSK'.

ELSEIF ZSIVA_KA_FE_12-DEL_BLOCK <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-LIFSK'.

ENDIF.

WHEN 'T4'.

IF ZSIVA_KA_FE_12-INCO1 = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-INCO1'.

ELSEIF ZSIVA_KA_FE_12-INCO1 <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-INCO1'.

ENDIF.

WHEN 'T5'.

IF ZSIVA_KA_FE_12-INCO2 = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-INCO2'.

ELSEIF ZSIVA_KA_FE_12-INCO2 <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-INCO2'.

ENDIF.

WHEN 'T6'.

IF ZSIVA_KA_FE_12-COMP_DEL_IND = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-AUTLF'.

ELSEIF ZSIVA_KA_FE_12-COMP_DEL_IND <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-AUTLF'.

ENDIF.

WHEN 'T7'.

IF ZSIVA_KA_FE_12-SHIPTO = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-KUNNR'.

ELSEIF ZSIVA_KA_FE_12-SHIPTO <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-KUNNR'.

ENDIF.

WHEN 'T8'.

IF ZSIVA_KA_FE_12-PRICE_DATE = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-PRSDT'.

ELSEIF ZSIVA_KA_FE_12-PRICE_DATE <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-PRSDT'.

ENDIF.

WHEN 'T9'.

IF ZSIVA_KA_FE_12-PAYTERM = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-ZTERM'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-ZTERM'.

ENDIF.

WHEN 'T11'.

IF ZSIVA_KA_FE_12-CUSTPO = 'X'.

PERFORM TICKON USING 'WA_HEADSCR-BSTKD'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_HEADSCR-BSTKD'.

ENDIF.

WHEN 'T12'.

IF ZSIVA_KA_FE_12-MATERIAL = 'X'.

PERFORM TICKON USING 'WA_ITEMSCR-MATNR'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_ITEMSCR-MATNR'.

ENDIF.

WHEN 'T13'.

IF ZSIVA_KA_FE_12-QUANTITY = 'X'.

PERFORM TICKON USING 'WA_ITEMSCR-KWMENG'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_ITEMSCR-KWMENG'.

ENDIF.

WHEN 'T14'.

IF ZSIVA_KA_FE_12-DEL_PLANT = 'X'.

PERFORM TICKON USING 'WA_ITEMSCR-WERKS'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_ITEMSCR-WERKS'.

ENDIF.

WHEN 'T15'.

IF ZSIVA_KA_FE_12-REJ_REASON = 'X'.

PERFORM TICKON USING 'WA_ITEMSCR-ABGRU'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_ITEMSCR-ABGRU'.

ENDIF.

WHEN 'T16'.

IF ZSIVA_KA_FE_12-DEL_PRIORITY = 'X'.

PERFORM TICKON USING 'WA_ITEMSCR-LPRIO'.

ELSEIF ZSIVA_KA_FE_12-SHIP_CONDITION <> 'X'.

PERFORM TICKOFF USING 'WA_ITEMSCR-LPRIO'.

ENDIF.

WHEN 'BACK'.

CALL SCREEN 9002.

ENDCASE.

ENDMODULE. " USER_COMMAND_9003 INPUT

&----


*& Form DISABLE

&----


  • text

----


  • DISABLING THE FIELDS ACCORDING TO THE AUTHORITY

----


FORM DISABLE USING GRP.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = GRP.

SCREEN-INPUT = '1'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDFORM. "DISABLE

&----


*& Form KEY_INFO

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM KEY_INFO .

WA_KEYINFO-HEADER01 = 'VBELN'.

WA_KEYINFO-ITEM01 = 'VBELN'.

WA_REPID = SY-REPID.

ENDFORM. " KEY_INFO

&----


*& Form FIELD_CATALOG

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FIELD_CATALOG .

CLEAR WA_FIELDC.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = WA_REPID

I_INTERNAL_TABNAME = 'IT_HEAD' "I_INTERNAL_TABNAME

I_STRUCTURE_NAME = 'Z243_HEADER' "I_STRUCTURE_NAME

I_CLIENT_NEVER_DISPLAY = 'X'

CHANGING

CT_FIELDCAT = IT_FIELDC.

DELETE IT_FIELDC WHERE FIELDNAME <> 'AUTLF' AND

FIELDNAME <> 'KUNNR' AND

FIELDNAME <> 'VSBED' AND

FIELDNAME <> 'LIFSK' AND

FIELDNAME <> 'AUGRU' AND

FIELDNAME <> 'VBELN' AND

FIELDNAME <> 'BSTKD' AND

FIELDNAME <> 'ZTERM' AND

FIELDNAME <> 'PRSDT' AND

FIELDNAME <> 'INCO1' AND

FIELDNAME <> 'INCO2' .

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = WA_REPID

I_INTERNAL_TABNAME = 'IT_ITEM' "I_INTERNAL_TABNAME

I_STRUCTURE_NAME = 'Z243_ITEM' "I_STRUCTURE_NAME

CHANGING

CT_FIELDCAT = IT_FIELDC1.

DELETE IT_FIELDC1 WHERE FIELDNAME <> 'POSNR' AND

FIELDNAME <> 'MATNR' AND

FIELDNAME <> ' WERKS' AND

FIELDNAME <> 'LPRIO' AND

FIELDNAME <> 'KWMENG' AND

FIELDNAME <> 'ABGRU' AND

FIELDNAME <> 'MAKTX' AND

FIELDNAME <> 'VDATU' AND

FIELDNAME <> 'PRSDT' AND

FIELDNAME <> 'VBELN' .

LOOP AT IT_FIELDC1 INTO WA_FIELDC.

APPEND WA_FIELDC TO IT_FIELDC.

ENDLOOP.

ENDFORM. " FIELD_CATALOG

&----


*& Form FILL_LAYOUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FILL_LAYOUT .

WA_LAYOUT-ZEBRA = 'X'.

WA_LAYOUT-EXPAND_FIELDNAME = 'EXPAND'. "FOR EXPANDING

WA_LAYOUT-EXPAND_ALL = 'X'.

WA_LAYOUT-BOX_FIELDNAME = 'BOX'.

WA_LAYOUT-BOX_TABNAME = 'IT_HEAD'.

WA_LAYOUT-KEY_HOTSPOT = 'X'.

WA_LAYOUT-F2CODE = U_COMM.

WA_LAYOUT-DETAIL_POPUP = 'X'.

WA_LAYOUT-LIGHTS_CONDENSE = 'X'.

ENDFORM. " FILL_LAYOUT

&----


*& Form STATUS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM STATUS USING RT_EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'SBAR' EXCLUDING RT_EXTAB.

SET TITLEBAR 'TITLE2'.

ENDFORM. " STATUS

&----


*& Form ucomm

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM UCOMMAND USING R_COMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD .

CASE R_COMM.

WHEN 'UP'.

LOOP AT IT_HEAD INTO WA_HEAD WHERE BOX = 'X'.

APPEND WA_HEAD TO IT_HEADSCR.

ENDLOOP.

CALL SCREEN 9003.

WHEN 'UPS'.

DATA RETANS.

DATA LEN(2) TYPE N.

DATA QUESTION(75) TYPE C.

DESCRIBE TABLE IT_HEADSCR LINES LEN.

CONCATENATE LEN TEXT-002 INTO QUESTION.

CALL FUNCTION 'POPUP_TO_CONFIRM'

EXPORTING

TITLEBAR = 'Sales Order selected for Changes'

TEXT_QUESTION = QUESTION

TEXT_BUTTON_1 = 'Yes'

ICON_BUTTON_1 = 'ICON_OKAY'

TEXT_BUTTON_2 = 'No'

ICON_BUTTON_2 = 'ICON_CANCEL'

DISPLAY_CANCEL_BUTTON = ' '

IV_QUICKINFO_BUTTON_1 = 'CONFIRM CHANGE'

IV_QUICKINFO_BUTTON_2 = 'CANCEL CHANGE'

IMPORTING

ANSWER = RETANS

EXCEPTIONS

TEXT_NOT_FOUND = 1

OTHERS = 2.

IF SY-SUBRC <> 0.

LEAVE TO LIST-PROCESSING.

SET PF-STATUS SPACE.

WRITE / SY-SUBRC.

ENDIF.

IF RETANS = 1.

PERFORM BAPI.

ENDIF..

ENDCASE.

ENDFORM. " ucomm

&----


*& Form BAPI

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BAPI .

CLEAR: RETURN[], RETURN1[].

WA_HEADER-UPDATEFLAG = 'U'.

WA_HEADER-PURCH_NO_C = 'X'.

WA_HEADER-PMNTTRMS = 'X'.

WA_HEADER-INCOTERMS1 = 'X'.

WA_HEADER-SHIP_COND = 'X'.

LOOP AT IT_HEAD INTO WA_HEAD WHERE BOX ='X'.

READ TABLE IT_HEAD INTO WA_HEAD WITH KEY VBELN = WA_HEAD-VBELN.

WA_HEADDATA-PURCH_NO_C = WA_HEAD-BSTKD.

WA_HEADDATA-PMNTTRMS = WA_HEAD-ZTERM.

WA_HEADDATA-INCOTERMS1 = WA_HEAD-INCO1.

WA_HEADDATA-SHIP_COND = WA_HEAD-VSBED.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = WA_HEAD-VBELN

ORDER_HEADER_IN = WA_HEADDATA

ORDER_HEADER_INX = WA_HEADER

TABLES

RETURN = RETURN.

LOOP AT RETURN.

MOVE-CORRESPONDING RETURN TO RETMSG.

APPEND RETMSG.

ENDLOOP.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

IMPORTING

RETURN = RETURN1.

ENDLOOP.

PERFORM POPUP.

ENDFORM. " BAPI

&----


*& Form POPUP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM POPUP .

DATA : IT_FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

DATA : BEGIN OF WA_DATATAB,

TYPE(4) TYPE C,

MSG LIKE RETURN-MESSAGE,

END OF WA_DATATAB,

IT_DATATAB LIKE TABLE OF WA_DATATAB.

IF IT_FCAT IS INITIAL.

IT_FCAT-FIELDNAME = 'TYPE'.

IT_FCAT-TABNAME = 'IT_DATATAB'.

IT_FCAT-SELTEXT_L = 'TYPE'.

IT_FCAT-OUTPUTLEN = 10.

APPEND IT_FCAT.

CLEAR IT_FCAT.

IT_FCAT-FIELDNAME = 'MSG'.

IT_FCAT-TABNAME = 'IT_DATATAB'.

IT_FCAT-SELTEXT_L = 'MESSAGE'.

IT_FCAT-OUTPUTLEN = 70.

APPEND IT_FCAT.

ENDIF.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_GRID_TITLE = 'BAPI Return Messages'

IT_FIELDCAT = IT_FCAT[]

I_SCREEN_START_COLUMN = 10

I_SCREEN_START_LINE = 5

I_SCREEN_END_COLUMN = 100

I_SCREEN_END_LINE = 20

TABLES

T_OUTTAB = RETMSG.

*

  • LEAVE TO LIST-PROCESSING.

  • SET PF-STATUS SPACE.

*

  • LOOP AT RETMSG.

  • WRITE RETMSG-MESSAGE.

  • ENDLOOP.

ENDFORM. " POPUP

" INIT OUTPUT

&----


*& Form TICKON

&----


  • text

----


  • -->P_1345 text

----


FORM TICKON USING SON .

LOOP AT SCREEN.

IF SCREEN-NAME = SON.

SCREEN-INPUT = '0'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDFORM. " TICKON

&----


*& Form TICKOFF

&----


  • text

----


  • -->P_1353 text

----


FORM TICKOFF USING SOFF.

LOOP AT SCREEN.

IF SCREEN-NAME = SOFF.

SCREEN-INPUT = '1'.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDFORM. " TICKOFF

<b>Reward points if you find this Helpful</b>

Regards

Siva