*&---------------------------------------------------------------------*
*& Report ZPP_BDC_BOM_PGM
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZPP_BDC_BOM_PGM
*report ZPB_PP_BDC_CS01
no standard page heading line-size 255.
TABLES: mapl, plpo, plas.
include Zbdc.
*parameters: dataset(132) lower case.
*** DO NOT CHANGE - the generated data section - DO NOT CHANGE ***
*
* If it is nessesary to change the data section use the rules:
* 1.) Each definition of a field exists of two lines
* 2.) The first line shows exactly the comment
* '* data element: ' followed with the data element
* which describes the field.
* If you don't have a data element use the
* comment without a data element name
* 3.) The second line shows the fieldname of the
* structure, the fieldname must consist of
* a fieldname and optional the character '_' and
* three numbers and the field length in brackets
* 4.) Each field must be type C.
*
*** Generated data section with specific formatting - DO NOT CHANGE ***
DATA: LIN_COUNT(02),
X1(20),
X2(20),
X3(20),
X4(20),
X5(20),
X6(20),
X7(20),
flag(002), "Flag to select the assignment
CNT type i,
cnt1 type i,
cnt2 type i,
opno(4) TYPE N,
sequence(6) type n,
set type i.
data: begin of record OCCURS 0,
count(005), "Counter
* data element: MATNR
MATNR_001(018), "Material No
* data element: WERKS_D
WERKS_002(004), "Plant
* data element: STLAN
STLAN_003(001), "Bom Usage
* data element: STALT
STLAL_004(002), "Alternative Bom
* data element: DATUV
DATUV_005(010), "Valid-From Date
* data element: CSTEXT
ZTEXT_006(040), "BOM Text
* data element: BASMN
BMENG_007(017), "Base Quantity
LOSVN(013), "From Lot Size
LOSBS(013), "To Lot Size
* data element: STLST
STLST_008(002), "BOM Status
* data element: SPOSN
POSNR_012(004), "BOM Item Number
* data element: IDNRK
IDNRK_01_009(018), "Component
* RC29P-POSTP
POSTP(001), "Item Category (Bill of Material)
* data element: KMPMG
MENGE_01_010(018), "Quantity
** data element: IDNRK
* IDNRK_013(018),
** data element: KMPMG
rekrs_014(018), " recurssive
** data element: KMPME
* MEINS_015(003),
* data element: FMNGE
* FMENG_016(001), "Fixed qty
** data element: NETAU
** NETAU_017(001), "Indicator: Net scrap
** data element: KAUSF
AUSCH_018(006), "Component scrap (%)
** data element: BEIKZ
BEIKZ_019(001), "Material Provision Indicator
* data element: KMPME
MEINS_01_011(003), "Component Unit of Measure
** data element: CSLGO
LGORT_020(004), "Issue STORAGE location for production order
*
*** data element: CK_SELKZ
** SANKA_021(001),
*** data element: CSAUS
** AUSKZ_01_022(001),
*** data element: FLG_SEL
** FLG_SEL_04_023(001),
opno(004), "Operation No.
sequence(006), "Sequence
end of record.
**
**** End generated data section ***
PARAMETERS: filename(250) TYPE c.
DATA: filename1 TYPE string.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
PERFORM get_file.
START-OF-SELECTION.
filename1 = filename.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = filename1
FILETYPE = 'ASC'
has_field_separator = 'X'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
* CHECK_BOM = ' '
* VIRUS_SCAN_PROFILE =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
TABLES
data_tab = record
* 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
* OTHERS = 17
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
perform open_group.
LOOP AT RECORD.
ON CHANGE OF record-count. "record-matnr_001 OR RECORD-STLAL_004.
LIN_COUNT = 1.
perform bdc_dynpro using 'SAPLCSDI' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RC29N-DATUV'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RC29N-MATNR'
record-MATNR_001.
perform bdc_field using 'RC29N-WERKS'
record-WERKS_002.
perform bdc_field using 'RC29N-STLAN'
record-STLAN_003.
perform bdc_field using 'RC29N-STLAL'
record-STLAL_004.
perform bdc_field using 'RC29N-DATUV'
record-DATUV_005.
perform bdc_dynpro using 'SAPLCSDI' '0110'.
perform bdc_field using 'BDC_CURSOR'
'RC29K-BMENG'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RC29K-ZTEXT'
record-ZTEXT_006.
perform bdc_field using 'RC29K-BMENG'
record-BMENG_007.
perform bdc_field using 'RC29K-STLST'
record-STLST_008.
perform bdc_dynpro using 'SAPLCSDI' '0111'.
perform bdc_field using 'BDC_CURSOR'
'RC29K-LABOR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
ENDON.
PERFORM CONCAT.
perform bdc_dynpro using 'SAPLCSDI' '0140'.
perform bdc_field using 'BDC_CURSOR'
X5. "'RC29P-POSTP(01)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using X1 "'RC29P-POSNR(01)'
record-POSNR_012.
perform bdc_field using X2 "'RC29P-IDNRK(01)'
record-IDNRK_01_009.
perform bdc_field using X3 "'RC29P-MENGE(01)'
record-MENGE_01_010.
*perform bdc_field using X4 "'RC29P-MEINS(01)'
* record-MEINS_01_011.
perform bdc_field using X5 "'RC29P-POSTP(01)'
record-POSTP.
*perform bdc_field using X6 "'RC29P-AUSKZ(01)'
* 'X'. "record-AUSKZ_01_022.
perform bdc_dynpro using 'SAPLCSDI' '0130'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-REKRS'.
*perform bdc_field using 'RC29P-POSNR'
* record-POSNR_012.
perform bdc_field using 'RC29P-REKRS'
RECORD-rekrs_014.
*perform bdc_field using 'RC29P-IDNRK'
* record-IDNRK_013.
*perform bdc_field using 'RC29P-MENGE'
* record-MENGE_014.
*perform bdc_field using 'RC29P-MEINS'
* record-MEINS_015.
*perform bdc_field using 'RC29P-FMENG'
* record-FMENG_016.
*perform bdc_field using 'RC29P-NETAU'
* record-NETAU_017.
*perform bdc_field using 'RC29P-AUSCH'
* record-AUSCH_018.
perform bdc_dynpro using 'SAPLCSDI' '0131'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
*perform bdc_field using 'BDC_CURSOR'
* 'RC29P-LGORT'.
*perform bdc_field using 'RC29P-BEIKZ'
* record-BEIKZ_019.
*perform bdc_field using 'RC29P-LGORT'
* record-LGORT_020.
*perform bdc_field using 'RC29P-SANKA'
* record-SANKA_021.
*perform bdc_dynpro using 'SAPLCSDI' '0150'.
*perform bdc_field using 'BDC_CURSOR'
* X6. "'RC29P-AUSKZ(01)'.
*perform bdc_field using 'BDC_OKCODE'
* '=AVOZ'.
*perform bdc_field using X6 "'RC29P-AUSKZ(01)'
* 'X'. "record-AUSKZ_01_022.
*
**----------------------------------------------
**To do assignment, on sequence & operation
*
*SELECT SINGLE * FROM mapl WHERE matnr = record-MATNR_001 AND plnty = 'N'.
*
**CONCATENATE '00000' record-sequence INTO record-sequence.
**CONCATENATE '00' record-OPNO INTO record-OPNO.
**sequence = record-sequence.
**opno = record-opno.
*
*SELECT * FROM plas WHERE plnty = 'N' AND plnnr = mapl-plnnr AND plnal = mapl-plnal AND plnfl = sequence.
* SELECT SINGLE * FROM plpo WHERE plnty = 'N' AND plnnr = plas-plnnr AND vornr = opno.
* IF sy-subrc = 0.
** IF record-sequence = 0.
* flag = plpo-plnkn + 1.
* ENDIF.
** IF record-sequence = 1.
* SELECT * FROM plas WHERE plnty = 'N' AND plnnr = mapl-plnnr AND plnal = mapl-plnal AND plnfl = '000000'.
* CNT = CNT + 1.
* ENDSELECT.
* SELECT * FROM plas WHERE plnty = 'N' AND plnnr = mapl-plnnr AND plnal = mapl-plnal AND plnfl = '000002'.
* CNT1 = CNT1 + 1.
* ENDSELECT.
* SELECT * FROM plas WHERE plnty = 'N' AND plnnr = mapl-plnnr AND plnal = mapl-plnal AND plnfl = '000001'.
* SELECT SINGLE * FROM plpo WHERE plnty = 'N' AND plnnr = plas-plnnr AND plnkn = plas-plnkn AND vornr = opno.
* IF sy-subrc = 0.
* CNT2 = set + 1.
* ENDIF.
* set = set + 1.
* ENDSELECT.
* flag = CNT + CNT1 + CNT2 + 3.
* ENDIF.
* IF record-sequence = 2.
* SELECT * FROM plas WHERE plnty = 'N' AND plnnr = mapl-plnnr AND plnal = mapl-plnal AND plnfl = '000000'.
* CNT = CNT + 1.
* ENDSELECT.
* SELECT * FROM plas WHERE plnty = 'N' AND plnnr = mapl-plnnr AND plnal = mapl-plnal AND plnfl = '000002'.
* SELECT SINGLE * FROM plpo WHERE plnty = 'N' AND plnnr = plas-plnnr AND plnkn = plas-plnkn AND vornr = opno.
* IF sy-subrc = 0.
* CNT1 = set + 1.
* ENDIF.
* set = set + 1.
* ENDSELECT.
* flag = CNT + CNT1 + 2.
* ENDIF.
* CLEAR: CNT, CNT1, set.
* ENDIF.
*ENDSELECT.
*perform bdc_dynpro using 'SAPLCMDI' '1100'.
*
* CONCATENATE 'RC27X-FLG_SEL(' flag ')' INTO X7.
*
*perform bdc_field using 'BDC_CURSOR'
* X7. "'RC27X-FLG_SEL(flag). "(04)'.
*perform bdc_field using 'BDC_OKCODE'
* '=NEW'.
*perform bdc_field using X7 "'RC27X-FLG_SEL(flag)'
* 'X'. "record-FLG_SEL_04_023.
*
*perform bdc_dynpro using 'SAPLCMDI' '1100'.
*perform bdc_field using 'BDC_CURSOR'
* 'RCM01-MATNR'.
*perform bdc_field using 'BDC_OKCODE'
* '=BACM'.
*perform bdc_dynpro using 'SAPLCSDI' '0150'.
**perform bdc_field using 'BDC_CURSOR'
** 'RC29P-POSNR(01)'.
*perform bdc_field using 'BDC_OKCODE'
* '=FCNP'.
lin_count = lin_count + 1.
AT END OF count. "MATNR_001.
perform bdc_dynpro using 'SAPLCSDI' '0140'.
*perform bdc_field using 'BDC_CURSOR'
* 'RC29P-POSNR(02)'.
perform bdc_field using 'BDC_OKCODE'
'=FCBU'.
perform bdc_transaction using 'CS01'.
ENDAT.
ENDLOOP.
perform close_group.
*&---------------------------------------------------------------------*
*& Form CONCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM concat.
IF LIN_COUNT < 50.
CONCATENATE 'RC29P-POSNR(' lin_count ')' INTO X1.
CONCATENATE 'RC29P-IDNRK(' lin_count ')' INTO X2.
CONCATENATE 'RC29P-MENGE(' lin_count ')' INTO X3.
CONCATENATE 'RC29P-MEINS(' lin_count ')' INTO X4.
CONCATENATE 'RC29P-POSTP(' lin_count ')' INTO X5.
CONCATENATE 'RC29P-AUSKZ(' lin_count ')' INTO X6.
* CONCATENATE 'RC29P-REKRS' INTO X7.
ENDIF.
ENDFORM.
" CONCAT
*&---------------------------------------------------------------------*
*& Form GET_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_FILE .
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = ' '
def_path = '*.*'
mask = ''
mode = 'O'
title = ' '
IMPORTING
filename = filename
* RC = GD_SUBRC
EXCEPTIONS
* INV_WINSYS = 1
* NO_BATCH = 2
selection_cancel = 3
selection_error = 4.
ENDFORM. " GET_FILE
*& Report ZPP_BDC_BOM_PGM
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZPP_BDC_BOM_PGM
*report ZPB_PP_BDC_CS01
no standard page heading line-size 255.
TABLES: mapl, plpo, plas.
include Zbdc.
*parameters: dataset(132) lower case.
*** DO NOT CHANGE - the generated data section - DO NOT CHANGE ***
*
* If it is nessesary to change the data section use the rules:
* 1.) Each definition of a field exists of two lines
* 2.) The first line shows exactly the comment
* '* data element: ' followed with the data element
* which describes the field.
* If you don't have a data element use the
* comment without a data element name
* 3.) The second line shows the fieldname of the
* structure, the fieldname must consist of
* a fieldname and optional the character '_' and
* three numbers and the field length in brackets
* 4.) Each field must be type C.
*
*** Generated data section with specific formatting - DO NOT CHANGE ***
DATA: LIN_COUNT(02),
X1(20),
X2(20),
X3(20),
X4(20),
X5(20),
X6(20),
X7(20),
flag(002), "Flag to select the assignment
CNT type i,
cnt1 type i,
cnt2 type i,
opno(4) TYPE N,
sequence(6) type n,
set type i.
data: begin of record OCCURS 0,
count(005), "Counter
* data element: MATNR
MATNR_001(018), "Material No
* data element: WERKS_D
WERKS_002(004), "Plant
* data element: STLAN
STLAN_003(001), "Bom Usage
* data element: STALT
STLAL_004(002), "Alternative Bom
* data element: DATUV
DATUV_005(010), "Valid-From Date
* data element: CSTEXT
ZTEXT_006(040), "BOM Text
* data element: BASMN
BMENG_007(017), "Base Quantity
LOSVN(013), "From Lot Size
LOSBS(013), "To Lot Size
* data element: STLST
STLST_008(002), "BOM Status
* data element: SPOSN
POSNR_012(004), "BOM Item Number
* data element: IDNRK
IDNRK_01_009(018), "Component
* RC29P-POSTP
POSTP(001), "Item Category (Bill of Material)
* data element: KMPMG
MENGE_01_010(018), "Quantity
** data element: IDNRK
* IDNRK_013(018),
** data element: KMPMG
rekrs_014(018), " recurssive
** data element: KMPME
* MEINS_015(003),
* data element: FMNGE
* FMENG_016(001), "Fixed qty
** data element: NETAU
** NETAU_017(001), "Indicator: Net scrap
** data element: KAUSF
AUSCH_018(006), "Component scrap (%)
** data element: BEIKZ
BEIKZ_019(001), "Material Provision Indicator
* data element: KMPME
MEINS_01_011(003), "Component Unit of Measure
** data element: CSLGO
LGORT_020(004), "Issue STORAGE location for production order
*
*** data element: CK_SELKZ
** SANKA_021(001),
*** data element: CSAUS
** AUSKZ_01_022(001),
*** data element: FLG_SEL
** FLG_SEL_04_023(001),
opno(004), "Operation No.
sequence(006), "Sequence
end of record.
**
**** End generated data section ***
PARAMETERS: filename(250) TYPE c.
DATA: filename1 TYPE string.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR filename.
PERFORM get_file.
START-OF-SELECTION.
filename1 = filename.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = filename1
FILETYPE = 'ASC'
has_field_separator = 'X'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
* CHECK_BOM = ' '
* VIRUS_SCAN_PROFILE =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
TABLES
data_tab = record
* 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
* OTHERS = 17
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
perform open_group.
LOOP AT RECORD.
ON CHANGE OF record-count. "record-matnr_001 OR RECORD-STLAL_004.
LIN_COUNT = 1.
perform bdc_dynpro using 'SAPLCSDI' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RC29N-DATUV'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RC29N-MATNR'
record-MATNR_001.
perform bdc_field using 'RC29N-WERKS'
record-WERKS_002.
perform bdc_field using 'RC29N-STLAN'
record-STLAN_003.
perform bdc_field using 'RC29N-STLAL'
record-STLAL_004.
perform bdc_field using 'RC29N-DATUV'
record-DATUV_005.
perform bdc_dynpro using 'SAPLCSDI' '0110'.
perform bdc_field using 'BDC_CURSOR'
'RC29K-BMENG'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RC29K-ZTEXT'
record-ZTEXT_006.
perform bdc_field using 'RC29K-BMENG'
record-BMENG_007.
perform bdc_field using 'RC29K-STLST'
record-STLST_008.
perform bdc_dynpro using 'SAPLCSDI' '0111'.
perform bdc_field using 'BDC_CURSOR'
'RC29K-LABOR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
ENDON.
PERFORM CONCAT.
perform bdc_dynpro using 'SAPLCSDI' '0140'.
perform bdc_field using 'BDC_CURSOR'
X5. "'RC29P-POSTP(01)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using X1 "'RC29P-POSNR(01)'
record-POSNR_012.
perform bdc_field using X2 "'RC29P-IDNRK(01)'
record-IDNRK_01_009.
perform bdc_field using X3 "'RC29P-MENGE(01)'
record-MENGE_01_010.
*perform bdc_field using X4 "'RC29P-MEINS(01)'
* record-MEINS_01_011.
perform bdc_field using X5 "'RC29P-POSTP(01)'
record-POSTP.
*perform bdc_field using X6 "'RC29P-AUSKZ(01)'
* 'X'. "record-AUSKZ_01_022.
perform bdc_dynpro using 'SAPLCSDI' '0130'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'BDC_CURSOR'
'RC29P-REKRS'.
*perform bdc_field using 'RC29P-POSNR'
* record-POSNR_012.
perform bdc_field using 'RC29P-REKRS'
RECORD-rekrs_014.
*perform bdc_field using 'RC29P-IDNRK'
* record-IDNRK_013.
*perform bdc_field using 'RC29P-MENGE'
* record-MENGE_014.
*perform bdc_field using 'RC29P-MEINS'
* record-MEINS_015.
*perform bdc_field using 'RC29P-FMENG'
* record-FMENG_016.
*perform bdc_field using 'RC29P-NETAU'
* record-NETAU_017.
*perform bdc_field using 'RC29P-AUSCH'
* record-AUSCH_018.
perform bdc_dynpro using 'SAPLCSDI' '0131'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
*perform bdc_field using 'BDC_CURSOR'
* 'RC29P-LGORT'.
*perform bdc_field using 'RC29P-BEIKZ'
* record-BEIKZ_019.
*perform bdc_field using 'RC29P-LGORT'
* record-LGORT_020.
*perform bdc_field using 'RC29P-SANKA'
* record-SANKA_021.
*perform bdc_dynpro using 'SAPLCSDI' '0150'.
*perform bdc_field using 'BDC_CURSOR'
* X6. "'RC29P-AUSKZ(01)'.
*perform bdc_field using 'BDC_OKCODE'
* '=AVOZ'.
*perform bdc_field using X6 "'RC29P-AUSKZ(01)'
* 'X'. "record-AUSKZ_01_022.
*
**----------------------------------------------
**To do assignment, on sequence & operation
*
*SELECT SINGLE * FROM mapl WHERE matnr = record-MATNR_001 AND plnty = 'N'.
*
**CONCATENATE '00000' record-sequence INTO record-sequence.
**CONCATENATE '00' record-OPNO INTO record-OPNO.
**sequence = record-sequence.
**opno = record-opno.
*
*SELECT * FROM plas WHERE plnty = 'N' AND plnnr = mapl-plnnr AND plnal = mapl-plnal AND plnfl = sequence.
* SELECT SINGLE * FROM plpo WHERE plnty = 'N' AND plnnr = plas-plnnr AND vornr = opno.
* IF sy-subrc = 0.
** IF record-sequence = 0.
* flag = plpo-plnkn + 1.
* ENDIF.
** IF record-sequence = 1.
* SELECT * FROM plas WHERE plnty = 'N' AND plnnr = mapl-plnnr AND plnal = mapl-plnal AND plnfl = '000000'.
* CNT = CNT + 1.
* ENDSELECT.
* SELECT * FROM plas WHERE plnty = 'N' AND plnnr = mapl-plnnr AND plnal = mapl-plnal AND plnfl = '000002'.
* CNT1 = CNT1 + 1.
* ENDSELECT.
* SELECT * FROM plas WHERE plnty = 'N' AND plnnr = mapl-plnnr AND plnal = mapl-plnal AND plnfl = '000001'.
* SELECT SINGLE * FROM plpo WHERE plnty = 'N' AND plnnr = plas-plnnr AND plnkn = plas-plnkn AND vornr = opno.
* IF sy-subrc = 0.
* CNT2 = set + 1.
* ENDIF.
* set = set + 1.
* ENDSELECT.
* flag = CNT + CNT1 + CNT2 + 3.
* ENDIF.
* IF record-sequence = 2.
* SELECT * FROM plas WHERE plnty = 'N' AND plnnr = mapl-plnnr AND plnal = mapl-plnal AND plnfl = '000000'.
* CNT = CNT + 1.
* ENDSELECT.
* SELECT * FROM plas WHERE plnty = 'N' AND plnnr = mapl-plnnr AND plnal = mapl-plnal AND plnfl = '000002'.
* SELECT SINGLE * FROM plpo WHERE plnty = 'N' AND plnnr = plas-plnnr AND plnkn = plas-plnkn AND vornr = opno.
* IF sy-subrc = 0.
* CNT1 = set + 1.
* ENDIF.
* set = set + 1.
* ENDSELECT.
* flag = CNT + CNT1 + 2.
* ENDIF.
* CLEAR: CNT, CNT1, set.
* ENDIF.
*ENDSELECT.
*perform bdc_dynpro using 'SAPLCMDI' '1100'.
*
* CONCATENATE 'RC27X-FLG_SEL(' flag ')' INTO X7.
*
*perform bdc_field using 'BDC_CURSOR'
* X7. "'RC27X-FLG_SEL(flag). "(04)'.
*perform bdc_field using 'BDC_OKCODE'
* '=NEW'.
*perform bdc_field using X7 "'RC27X-FLG_SEL(flag)'
* 'X'. "record-FLG_SEL_04_023.
*
*perform bdc_dynpro using 'SAPLCMDI' '1100'.
*perform bdc_field using 'BDC_CURSOR'
* 'RCM01-MATNR'.
*perform bdc_field using 'BDC_OKCODE'
* '=BACM'.
*perform bdc_dynpro using 'SAPLCSDI' '0150'.
**perform bdc_field using 'BDC_CURSOR'
** 'RC29P-POSNR(01)'.
*perform bdc_field using 'BDC_OKCODE'
* '=FCNP'.
lin_count = lin_count + 1.
AT END OF count. "MATNR_001.
perform bdc_dynpro using 'SAPLCSDI' '0140'.
*perform bdc_field using 'BDC_CURSOR'
* 'RC29P-POSNR(02)'.
perform bdc_field using 'BDC_OKCODE'
'=FCBU'.
perform bdc_transaction using 'CS01'.
ENDAT.
ENDLOOP.
perform close_group.
*&---------------------------------------------------------------------*
*& Form CONCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM concat.
IF LIN_COUNT < 50.
CONCATENATE 'RC29P-POSNR(' lin_count ')' INTO X1.
CONCATENATE 'RC29P-IDNRK(' lin_count ')' INTO X2.
CONCATENATE 'RC29P-MENGE(' lin_count ')' INTO X3.
CONCATENATE 'RC29P-MEINS(' lin_count ')' INTO X4.
CONCATENATE 'RC29P-POSTP(' lin_count ')' INTO X5.
CONCATENATE 'RC29P-AUSKZ(' lin_count ')' INTO X6.
* CONCATENATE 'RC29P-REKRS' INTO X7.
ENDIF.
ENDFORM.
" CONCAT
*&---------------------------------------------------------------------*
*& Form GET_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_FILE .
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = ' '
def_path = '*.*'
mask = ''
mode = 'O'
title = ' '
IMPORTING
filename = filename
* RC = GD_SUBRC
EXCEPTIONS
* INV_WINSYS = 1
* NO_BATCH = 2
selection_cancel = 3
selection_error = 4.
ENDFORM. " GET_FILE
No comments:
Post a Comment