Application Development 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: 

cs02 - change the meterial stor locations for sub items

jayakummar
Active Participant
0 Kudos

hai experts,

i need to change sub meterial stor.location in bom material.....

i tried through shdb it shows t-code difrently....and i tried through SCAT but it dosnt change all items

problem is for example

first bom having 4 items i record this and another having 10 mean it going to change only 4...

THIS IS MY PROBLEM.

OR

give a bapi name for cs02 t-code.

can any one give some solutions for this?

reward avail if helpful.

thanks in advance...

jai.m

4 REPLIES 4

Former Member
0 Kudos

Hi Kumar,

Try with User exits PCSD0002 if u want at item details and PCSD0003 if u want in header tables..

cheers,

Hema.

Former Member
0 Kudos

Check this FM,

CS_BC_BOM_CHANGE_BATCH_INPUT

Regards,

0 Kudos

hai chandra,

can u tel me how to use this FM.......BECOSE I NEED TO PASS THE BOM METERIAL AND SUB METERIALS AND SOR LOCATION FOR THIS SUB MATERIAL ....

REGARDS,

JAI.M

0 Kudos

Please check this program,

REPORTztestbi020 MESSAGE-ID 29 LINE-SIZE 255 NO STANDARD PAGE HEADING.

TABLES: bgr00,

bicsk,

bicsp,

bicsu,

csdata,

dynpread,

d020s,

d0300,

filename,

message,

msxxlist,

rlgrap,

t100,

t418.

CONSTANTS: max_commit_counter(5) TYPE n VALUE 50.

DATA: aux_text(70) TYPE c,

close_group LIKE csdata-xfeld,

commit_counter(5) TYPE n,

commit_work LIKE csdata-xfeld,

counter(6) TYPE n VALUE '1',

data_frn(1) TYPE c,

ds_phy_name LIKE rlgrap-filename,

dummy(1) TYPE c,

end_of_file(1) TYPE c,

header TYPE xstring,

filename1 TYPE string,

filetype TYPE char10,

filelength TYPE i,

group_open LIKE csdata-xfeld,

mask(20) TYPE c VALUE ',. ,..',

message_id LIKE t100-arbgb,

message_number LIKE t100-msgnr,

message_type LIKE syst-msgty,

message_var1 LIKE syst-msgv1,

message_var2 LIKE syst-msgv1,

message_var3 LIKE syst-msgv1,

message_var4 LIKE syst-msgv1,

new_group LIKE csdata-xfeld VALUE 'X',

no_group(1) TYPE c,

no_item(1) TYPE c,

no_transaction(1) TYPE c,

item_count LIKE syst-tabix,

postp LIKE t418-postp,

prev_transaction_exist(1) TYPE c,

prev_set_type(1) TYPE c,

last_set_type_1(1) TYPE c, "note390715

tcd_mode LIKE csdata-xfeld VALUE 'A',

tcode LIKE bicsk-tcode,

save_ucomm LIKE syst-ucomm,

group_opened(1) TYPE c, "note 187252

work_area(1000) TYPE c.

DATA: bom_header LIKE bicsk.

DATA: BEGIN OF aux_message_tab OCCURS 0.

INCLUDE STRUCTURE message.

DATA: group LIKE bgr00-group,

END OF aux_message_tab.

DATA: bom_items LIKE bicsp OCCURS 0 WITH HEADER LINE,

bom_sub_items LIKE bicsu OCCURS 0 WITH HEADER LINE,

pc_data_tab LIKE work_area OCCURS 0,

dynp_value_tab LIKE dynpread OCCURS 0 WITH HEADER LINE,

server_tab LIKE msxxlist OCCURS 0 WITH HEADER LINE.

FIELD-SYMBOLS: <set_type>.

--


Definition des Selektionsbildes--

SELECTION-SCREEN BEGIN OF BLOCK server WITH FRAME TITLE text-009.

SELECTION-SCREEN BEGIN OF BLOCK app_server WITH FRAME TITLE text-012.

PARAMETERS: log_name LIKE filename-fileintern.

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: data_app RADIOBUTTON GROUP csbi DEFAULT 'X'.

SELECTION-SCREEN COMMENT 4(42) text-006 FOR FIELD data_app.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: data_rem RADIOBUTTON GROUP csbi.

SELECTION-SCREEN COMMENT 4(42) text-008 FOR FIELD data_rem.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 4(12) text-010 FOR FIELD server.

PARAMETERS: server LIKE msxxlist-name.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK app_server.

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN BEGIN OF BLOCK front_end WITH FRAME TITLE text-013.

PARAMETERS: ds_name LIKE rlgrap-filename.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK front_end.

SELECTION-SCREEN END OF BLOCK server.

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN BEGIN OF BLOCK btci WITH FRAME TITLE text-001.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS: bdc_flag AS CHECKBOX.

SELECTION-SCREEN COMMENT 4(20) text-002 FOR FIELD bdc_flag.

SELECTION-SCREEN COMMENT 25(40) text-003.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN COMMENT 25(52) text-004.

SELECTION-SCREEN END OF BLOCK btci.

--


F4-Hilfe zur Dateisuche (Dateimanager)--

AT SELECTION-SCREEN ON VALUE-REQUEST FOR ds_name.

MOVE: syst-repid TO d020s-prog,

syst-dynnr TO d020s-dnum.

MOVE: 'DS_NAME' TO dynp_value_tab-fieldname.

APPEND dynp_value_tab.

CALL FUNCTION 'DYNP_VALUES_READ'

EXPORTING dyname = d020s-prog

dynumb = d020s-dnum

TABLES dynpfields = dynp_value_tab

EXCEPTIONS invalid_abapworkarea = 04

invalid_dynprofield = 08

invalid_dynproname = 12

invalid_dynpronummer = 16

invalid_request = 20

no_fielddescription = 24

undefind_error = 28.

READ TABLE dynp_value_tab INDEX 1.

MOVE: dynp_value_tab-fieldvalue TO ds_name.

CALL FUNCTION 'WS_FILENAME_GET'

EXPORTING def_filename = space

def_path = ds_name

mask = mask

mode = 'O'

title = space

IMPORTING filename = ds_name

rc = dummy

EXCEPTIONS inv_winsys = 04

no_batch = 08

selection_cancel = 12

selection_error = 16.

IF syst-subrc EQ '04'.

MESSAGE i838.

ENDIF.

--


F4-Hilfe zur Serversuche--

AT SELECTION-SCREEN ON VALUE-REQUEST FOR server.

MOVE: '255' TO msxxlist-msgtypes.

CALL FUNCTION 'TH_SELECT_SERVER'

EXPORTING services = msxxlist-msgtypes

IMPORTING server = server

EXCEPTIONS no_server_list_received = 04

no_server_selected = 08.

CASE syst-subrc.

WHEN '04'.

MESSAGE i623(00).

WHEN '08'.

MESSAGE i839.

ENDCASE.

--


Pruefung der Selektionseingaben--

AT SELECTION-SCREEN ON bdc_flag.

CHECK bdc_flag IS INITIAL.

CALL SCREEN 1100 STARTING AT 25 12 ENDING AT 61 17.

--


Selektionsbild--

AT SELECTION-SCREEN.

CHECK NOT ( log_name IS INITIAL ).

CALL FUNCTION 'FILE_GET_NAME'

EXPORTING logical_filename = log_name

IMPORTING file_name = ds_phy_name

EXCEPTIONS file_not_found = 04.

IF syst-subrc NE 0.

MESSAGE i016(mg) WITH log_name. "note509559

MESSAGE i821. "note509559

LEAVE PROGRAM. "note509559

ENDIF.

--


Beginn der Verarbeitung--

START-OF-SELECTION.

class cl_abap_container_utilities definition load.

IF NOT ( ds_name IS INITIAL ).

CLEAR: data_app, data_rem.

MOVE: 'X' TO data_frn.

ENDIF.

IF NOT ( data_frn IS INITIAL ).

IF NOT ( server IS INITIAL ).

MESSAGE i842.

ENDIF.

MOVE: ds_name TO filename1,

'ASC' TO filetype.

CALL METHOD cl_gui_frontend_services=>gui_upload

EXPORTING filename = filename1

filetype = filetype

IMPORTING filelength = filelength

header = header

CHANGING data_tab = pc_data_tab

EXCEPTIONS file_open_error = 01

file_read_error = 02

no_batch = 03

gui_refuse_filetransfer = 04

invalid_type = 05

no_authority = 06

unknown_error = 07

bad_data_format = 08

header_not_allowed = 09

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.

IF syst-subrc NE 0.

MESSAGE e506(id) WITH syst-subrc.

ENDIF.

ELSEIF NOT ( data_app IS INITIAL ).

IF NOT ( server IS INITIAL ).

MESSAGE i843.

ENDIF.

OPEN DATASET ds_phy_name FOR INPUT IN TEXT MODE ENCODING DEFAULT.

IF syst-subrc GT 0.

MESSAGE i800 WITH ds_phy_name.

MESSAGE i821. "note509559

LEAVE PROGRAM. "note509559

ENDIF.

ELSEIF NOT ( data_rem IS INITIAL ).

IF server IS INITIAL.

MESSAGE e840.

ENDIF.

MOVE: '255' TO msxxlist-msgtypes.

CALL FUNCTION 'TH_SERVER_LIST'

EXPORTING services = msxxlist-msgtypes

TABLES list = server_tab.

DESCRIBE TABLE server_tab LINES syst-tfill.

IF syst-tfill EQ 0.

MESSAGE e623(00).

ENDIF.

READ TABLE server_tab WITH KEY name = server.

IF syst-subrc NE 0.

READ TABLE server_tab WITH KEY host = server.

ENDIF.

IF syst-subrc EQ 0.

MOVE: server_tab-name TO server.

ELSE.

MESSAGE e841 WITH server.

ENDIF.

CALL FUNCTION 'CS_BI_GET_BOM_FILE_REMOTE_HOST' DESTINATION server

EXPORTING bom_filename = ds_phy_name

TABLES bom_file = pc_data_tab

EXCEPTIONS open_failure = 04

file_contains_no_data = 08.

CASE syst-subrc.

WHEN '04'.

READ TABLE server_tab WITH KEY name = server.

MESSAGE i844 WITH ds_phy_name server_tab-host.

MESSAGE i821. "note509559

LEAVE PROGRAM. "note509559

WHEN '08'.

READ TABLE server_tab WITH KEY name = server.

MESSAGE i845 WITH ds_phy_name server_tab-host.

MESSAGE i821. "note509559

LEAVE PROGRAM. "note509559

ENDCASE.

ENDIF.

ASSIGN work_area(1) TO <set_type>.

IF data_app IS INITIAL.

READ TABLE pc_data_tab INDEX counter INTO work_area.

ELSE.

READ DATASET ds_phy_name INTO work_area.

ENDIF.

IF syst-subrc GT 0.

MESSAGE i801 WITH ds_phy_name.

MESSAGE i821. "note509559

LEAVE PROGRAM. "note509559

ENDIF.

IF <set_type> NE '0'.

MESSAGE i802 WITH ds_phy_name.

MESSAGE i821. "note509559

LEAVE PROGRAM. "note509559

ENDIF.

MOVE: '0' TO prev_set_type,

work_area TO bgr00.

PERFORM check_group_variables.

WHILE end_of_file IS INITIAL.

CLEAR: work_area.

IF data_app IS INITIAL.

ADD: 1 TO counter.

READ TABLE pc_data_tab INDEX counter INTO work_area.

ELSE.

READ DATASET ds_phy_name INTO work_area.

ENDIF.

IF syst-subrc EQ 0.

CLEAR last_set_type_1.

ELSE.

MOVE: 'X' TO end_of_file,

'X' TO close_group.

IF NOT last_set_type_1 IS INITIAL.

MOVE: 'X' TO prev_transaction_exist.

ENDIF.

PERFORM process_previous_transaction.

ENDIF.

CHECK end_of_file IS INITIAL.

IF NOT ( no_group IS INITIAL ).

CHECK <set_type> EQ '0'.

ENDIF.

IF NOT ( no_transaction IS INITIAL ).

CHECK <set_type> CO '01'.

ENDIF.

PERFORM check_set_order USING <set_type>.

CHECK ( no_group IS INITIAL AND no_transaction IS INITIAL ).

CHECK <set_type> CO '0123'.

MOVE: <set_type> TO prev_set_type.

CASE <set_type>.

WHEN '0'.

CLEAR: aux_text.

MOVE: 'X' TO close_group.

PERFORM process_previous_transaction.

CLEAR: bom_header, close_group, commit_counter,

commit_work, item_count.

IF NOT ( group_opened IS INITIAL ).

CLEAR: group_opened.

CALL FUNCTION 'BDC_CLOSE_GROUP'.

ENDIF.

MOVE: 'X' TO new_group,

work_area TO bgr00.

PERFORM check_group_variables.

MOVE: text-014 TO aux_text.

REPLACE '&' WITH bgr00-group INTO aux_text.

PERFORM write_message USING 'I' '29' '899' aux_text

space space space.

WHEN '1'.

CLEAR: aux_text, item_count, tcode.

MOVE: 'X' TO last_set_type_1.

PERFORM process_previous_transaction.

CLEAR: bom_header.

CLEAR: bom_items. REFRESH bom_items.

CLEAR: bom_sub_items. REFRESH bom_sub_items.

MOVE: work_area TO bom_header.

IF ( bom_header-tcode NE 'CS02' AND

bom_header-tcode NE 'CS52' AND

bom_header-tcode NE 'CS72' AND

bom_header-tcode NE 'CV12' AND

bom_header-tcode NE 'IB02' AND

bom_header-tcode NE 'IB12' ).

PERFORM write_message USING 'E' '29' '811' bom_header-tcode

space space space.

CLEAR: prev_transaction_exist.

MOVE: 'X' TO no_transaction.

ENDIF.

MOVE: text-015 TO aux_text.

IF bom_header-tcode EQ 'CS02'.

REPLACE '&' WITH bom_header-matnr INTO aux_text.

REPLACE '&' WITH bom_header-werks INTO aux_text.

REPLACE '&' WITH bom_header-stlan INTO aux_text.

REPLACE '&' WITH bom_header-stlal INTO aux_text.

ELSEIF bom_header-tcode EQ 'IB02'.

REPLACE '&' WITH bom_header-equnr INTO aux_text.

REPLACE '&' WITH bom_header-werks INTO aux_text.

REPLACE '&' WITH bom_header-stlan INTO aux_text.

ENDIF.

PERFORM write_message USING 'I' '29' '899' aux_text

space space space.

IF NOT ( bdc_flag IS INITIAL ).

ADD: 1 TO commit_counter.

ENDIF.

WHEN '2'.

CLEAR: bom_items, no_item, postp, t418.

call method cl_abap_container_utilities=>read_container_c

exporting

im_container = work_area

importing

ex_value = bom_items

exceptions

others = 0.

move: bom_items-postp TO postp.

IF bom_items-alprf EQ space.

CLEAR: bom_items-alprf.

ENDIF.

SELECT SINGLE * FROM t418

WHERE postp EQ postp.

IF syst-subrc EQ 0.

MOVE: 1 TO bom_items-xline.

APPEND bom_items.

ADD: 1 TO item_count.

ELSE.

MOVE: 'X' TO no_item.

PERFORM write_message USING 'E' '29' '812' postp

space space space.

ENDIF.

WHEN '3'.

CLEAR: bom_sub_items.

IF NOT ( no_item IS INITIAL ).

PERFORM write_message USING 'E' '29' '813' postp

space space space.

ENDIF.

CHECK no_item IS INITIAL.

MOVE: work_area TO bom_sub_items,

item_count TO bom_sub_items-xline.

APPEND bom_sub_items.

MOVE: 'X' TO bom_items-upskz.

MODIFY bom_items INDEX item_count.

ENDCASE.

ENDWHILE.

IF NOT ( group_opened IS INITIAL ).

CLEAR: group_opened.

CALL FUNCTION 'BDC_CLOSE_GROUP'.

ELSE.

CALL FUNCTION 'BDC_CLOSE_GROUP'

EXCEPTIONS

OTHERS = 1.

ENDIF.

CLOSE DATASET ds_phy_name.

PERFORM display_bdc_protocol.

AT USER-COMMAND.

CASE syst-ucomm.

WHEN 'SM35'.

IF aux_message_tab-group IS INITIAL.

MESSAGE e818.

ENDIF.

CHECK NOT ( aux_message_tab-group IS INITIAL ).

SET PARAMETER ID 'MPN' FIELD aux_message_tab-group.

CALL TRANSACTION 'SM35' AND SKIP FIRST SCREEN.

ENDCASE.

--


FORM-ROUTINEN--

----


  • FORM CHECK_SET_ORDER *

----


  • Die Routine ueberprueft die Reihenfolge der aus dem sequen- *

  • tiellen File eingelesenen Datensaetze. Auf einen Satz vom *

  • Typ '0' (Mappensatz) muss immer ein Satz vom Typ '1' *

  • (Stuecklisten-Kopfsatz) folgen. Vor einem Satz vom Typ '2' *

  • (Stuecklisten-Positionssatz) muss immer ein Satz vom Typ '1' *

  • stehen. Vor einem Satz vom Typ '3' (Unterpositionssatz) muss *

  • immer ein Satz vom Typ '2' stehen. *

----


  • --> C_STTYP (Satztyp) *

----


FORM check_set_order USING c_sttyp.

IF c_sttyp NE '0' AND c_sttyp NE '1' AND

c_sttyp NE '2' AND c_sttyp NE '3'.

PERFORM write_message USING 'E' '29' '803'

c_sttyp space space space.

EXIT.

ENDIF.

CASE prev_set_type.

WHEN '0'.

CASE c_sttyp.

WHEN '0'.

CLEAR: no_group.

PERFORM write_message USING 'E' '29' '804'

space space space space.

WHEN '1'.

CLEAR: no_transaction.

WHEN '2'.

MOVE: 'X' TO no_transaction.

PERFORM write_message USING 'E' '29' '805'

space space space space.

WHEN '3'.

MOVE: 'X' TO no_transaction.

PERFORM write_message USING 'E' '29' '806'

space space space space.

ENDCASE.

WHEN '1'.

CASE c_sttyp.

WHEN '3'.

MOVE: 'X' TO no_transaction.

PERFORM write_message USING 'E' '29' '806'

space space space space.

WHEN OTHERS.

CLEAR: no_transaction.

MOVE: 'X' TO prev_transaction_exist.

ENDCASE.

WHEN OTHERS.

CLEAR: no_transaction.

ENDCASE.

ENDFORM.

----


  • FORM CHECK_GROUP_VARIABLES *

----


  • Die Routine ueberprueft die allgemeinen Mappendaten auf *

  • Vollstaendigkeit. *

----


  • Keine USING Parameter *

----


FORM check_group_variables.

CLEAR: no_group.

IF bgr00-group IS INITIAL.

MOVE: 'X' TO no_group.

PERFORM write_message USING 'E' '29' '807'

bgr00-group space space space.

ENDIF.

IF bgr00-mandt IS INITIAL.

MOVE: 'X' TO no_group.

PERFORM write_message USING 'E' '29' '808'

bgr00-group space space space.

ENDIF.

IF bgr00-mandt NE syst-mandt.

MOVE: 'X' TO no_group.

PERFORM write_message USING 'E' '29' '809' bgr00-group

bgr00-mandt syst-mandt space.

ENDIF.

IF bgr00-usnam IS INITIAL.

MOVE: 'X' TO no_group.

PERFORM write_message USING 'E' '29' '810'

bgr00-group space space space.

ENDIF.

ENDFORM.

----


  • FORM DISPLAY_BDC_PROTOCOL *

----


  • Die Routine gibt das waehrend der Erstellung der Batch- *

  • Input-Mappe erstellte Protokoll aus. *

----


  • Keine USING Parameter *

----


FORM display_bdc_protocol.

DATA: loc_aux_message LIKE message.

SET PF-STATUS 'BTCI_LST'.

WRITE: / text-011.

ULINE.

LOOP AT aux_message_tab.

MOVE: aux_message_tab TO loc_aux_message.

WRITE: / loc_aux_message.

HIDE: aux_message_tab-group.

ENDLOOP.

ENDFORM.

----


  • FORM PROCESS_PREVIOUS_TRANSACTION *

----


  • Die Routine verarbeitet die zuvor erstellte Transaktion. *

----


  • Keine USING Parameter *

----


FORM process_previous_transaction.

DATA: sav_new_group LIKE csdata-xfeld.

CHECK NOT ( prev_transaction_exist IS INITIAL ).

IF NOT ( bdc_flag IS INITIAL ) AND

commit_counter GT max_commit_counter.

MOVE: 'X' TO commit_work.

ENDIF.

IF bdc_flag IS INITIAL.

MOVE: new_group TO sav_new_group.

ENDIF.

CALL FUNCTION 'CS_BC_BOM_CHANGE_BATCH_INPUT'

EXPORTING bdc_flag = bdc_flag

bom_header = bom_header

close_group = close_group

commit_work = commit_work

group_data = bgr00

new_group = new_group

tcode_mode = tcd_mode

tcode_update = 'A'

IMPORTING msgty = message_type

msgid = message_id

msgno = message_number

msgv1 = message_var1

msgv2 = message_var2

msgv3 = message_var3

msgv4 = message_var4

new_group_out = new_group

TABLES bom_item = bom_items

bom_sub_item = bom_sub_items.

CLEAR: prev_transaction_exist.

IF NOT ( sav_new_group IS INITIAL )

AND new_group IS INITIAL

AND close_group IS INITIAL.

MOVE: 'X' TO group_opened.

ENDIF.

IF NOT ( commit_work IS INITIAL ).

CLEAR: commit_counter, commit_work.

ENDIF.

IF new_group IS INITIAL.

MOVE: 'X' TO group_open.

ENDIF.

IF NOT ( CLOSE_GROUP IS INITIAL ).

CLEAR: GROUP_OPENED.

ENDIF.

CHECK NOT ( message_type IS INITIAL ).

PERFORM write_message USING message_type message_id

message_number

message_var1 message_var2

message_var3 message_var4.

CHECK message_type NE 'S' AND NOT ( group_open IS INITIAL ).

CHECK NOT ( bdc_flag IS INITIAL ) AND NOT ( close_group IS INITIAL ).

CALL FUNCTION 'BDC_CLOSE_GROUP'.

ENDFORM.

----


  • FORM WRITE_MESSAGE *

----


  • Die Routine schreibt eine Message in die Message-Tabelle. *

  • Die Messages werden in dem Funktionsbaustein *

  • 'CS_MESSAGE_COLLECT' gesammelt und koennen spaeter wieder *

  • ausgegeben werden. *

----


  • --> W_MSGTY (Message-Typ) *

  • W_MSGID (Message-ID) *

  • W_MSGNO (Message-Nummer) *

  • W_MSGV1 (Message-Variable-1) *

  • W_MSGV2 (Message-Variable-2) *

  • W_MSGV3 (Message-Variable-3) *

  • W_MSGV4 (Message-Variable-4) *

----


FORM write_message USING w_msgty w_msgid w_msgno

w_msgv1 w_msgv2 w_msgv3 w_msgv4.

DATA: aux_msgid LIKE syst-msgid,

aux_msgno LIKE syst-msgno,

aux_msgty LIKE syst-msgty,

error_flag(1) TYPE c,

message_length(3) TYPE n.

DATA: loc_aux_message LIKE message.

CLEAR: aux_message_tab.

MOVE: w_msgty TO aux_msgty,

w_msgid TO aux_msgid,

w_msgno TO aux_msgno.

CALL FUNCTION 'WRITE_MESSAGE'

EXPORTING msgid = aux_msgid

msgno = aux_msgno

msgty = aux_msgty

msgv1 = w_msgv1

msgv2 = w_msgv2

msgv3 = w_msgv3

msgv4 = w_msgv4

msgv5 = space

IMPORTING error = error_flag

messg = loc_aux_message

msgln = message_length.

MOVE-CORRESPONDING: loc_aux_message TO aux_message_tab.

IF w_msgid EQ '29' AND w_msgno EQ '819'.

MOVE: w_msgv1 TO aux_message_tab-group.

ENDIF.

APPEND aux_message_tab TO aux_message_tab.

ENDFORM.

----


  • FORM D0300_CHECK *

----


  • Die Routine prueft die Eingaben auf dem Verarbeitungsbild. *

----


  • Keine USING Parameter *

----


FORM d0300_check.

CLEAR: tcd_mode.

IF d0300-hell EQ '.' AND d0300-error EQ '.' AND d0300-batch EQ '.'.

MESSAGE e310(00).

ENDIF.

IF d0300-hell EQ 'X'.

MOVE: 'A' TO tcd_mode.

ENDIF.

IF d0300-error EQ 'X' AND NOT ( tcd_mode IS INITIAL ).

MESSAGE e310(00).

ENDIF.

IF d0300-error EQ 'X' AND tcd_mode IS INITIAL.

MOVE: 'E' TO tcd_mode.

ENDIF.

IF d0300-batch EQ 'X' AND NOT ( tcd_mode IS INITIAL ).

MESSAGE e310(00).

ENDIF.

IF d0300-batch EQ 'X' AND tcd_mode IS INITIAL.

MOVE: 'N' TO tcd_mode.

ENDIF.

ENDFORM.

----


  • MODULE D0300_INIT (OUTPUT) *

----


  • Die Routine initialisiert das Verarbeitungsbild. *

----


MODULE d0300_init OUTPUT.

SET PF-STATUS 'CALL'.

SET TITLEBAR 'SLB'.

MOVE: syst-ucomm TO save_ucomm.

MOVE: '.' TO d0300-hell,

'.' TO d0300-error,

'.' TO d0300-batch.

ENDMODULE.

----


  • MODULE CHECK_D0300_FCODE *

----


  • Die Routine wertet den FCODE auf dem CALL SCREEN aus. *

----


MODULE check_d0300_fcode.

MOVE: save_ucomm TO syst-ucomm.

CASE d0300-fcode.

WHEN 'ABBR'.

IF syst-lsind EQ 1.

SUBTRACT: 1 FROM syst-lsind.

ENDIF.

SUBMIT rcsbi020 VIA SELECTION-SCREEN WITH log_name EQ log_name.

WHEN 'ENT1'.

PERFORM d0300_check.

SET SCREEN 0.

LEAVE SCREEN.

WHEN 'SELC'.

CASE syst-curow.

WHEN '3'.

MOVE: 'A' TO tcd_mode.

WHEN '4'.

MOVE: 'E' TO tcd_mode.

WHEN '5'.

MOVE: 'N' TO tcd_mode.

ENDCASE.

SET SCREEN 0.

LEAVE SCREEN.

ENDCASE.

ENDMODULE.