‎2010 Jul 19 2:14 PM
Hi, I need to mention that I'm not a developer. I try to learn ABAP
I get error message when try to activate my program.
DATA:
gt_rbkp TYPE HASHED TABLE OF rbkp WITH UNIQUE KEY belnr gjahr,
gs_rbkp TYPE rbkp,
gt_nast TYPE STANDARD TABLE OF nast WITH KEY objky kschl,
gs_nast TYPE nast,
gt_cmfp TYPE STANDARD TABLE OF cmfp,
gs_cmfp TYPE cmfp.
PERFORM set_objky.
* Get message status for MM invoices
SELECT *
APPENDING TABLE gt_nast
FROM nast
WHERE objky IN gr_objky
AND kschl = 'ZRIV'.
* Get sales order number for message number
IF LINES( gt_nast ) IS NOT INITIAL.
SELECT *
FROM cmfp INTO TABLE gt_cmfp
FOR ALL ENTRIES IN gt_nast
WHERE aplid = 'WFMC'
AND nr = gt_nast-cmfpnr
AND msgnr = '311'.
ENDIF.
* Get sales order headers for message variable (SO number from ZRIV output)
IF LINES( gt_cmfp ) IS NOT INITIAL.
SELECT *
FROM vbak INTO TABLE gt_vbak
WHERE vbeln = gt_cmfp-msgv2.
ENDIF.
FORM SET_OBJKY .
CLEAR gs_rbkp.
CLEAR gr_objky.
gr_objky-sign = 'I'.
gr_objky-option = 'EQ'.
* Object key for MM invoice
LOOP AT gt_rbkp INTO gs_rbkp.
CONCATENATE '$$$$' gs_rbkp-belnr gs_rbkp-gjahr '000000' INTO l_objky.
gr_objky-low = l_objky.
APPEND gr_objky.
ENDLOOP."GT_CMFP" is a table without a header line and therefore has no component called "MSGV2".
‎2010 Jul 19 2:57 PM
Hi,
If the column MSGV2 contain sale order numbers then below change should work. Also Make sure your field msgv2 is compatible with VBELN.
* Get sales order headers for message variable (SO number from ZRIV output)
IF LINES( gt_cmfp ) IS NOT INITIAL.
SELECT *
FROM vbak INTO TABLE gt_vbak
FOR ALL ENTRIES IN gt_cmfp "--> Change
WHERE vbeln = gt_cmfp-msgv2.
ENDIF.Regards
‎2010 Jul 19 2:50 PM
You need to use the structure gs_cmfp that you declared but you also need to populate it with a value (using a LOOP or READ) in order for the statement to work...
‎2010 Jul 19 2:57 PM
Hi,
If the column MSGV2 contain sale order numbers then below change should work. Also Make sure your field msgv2 is compatible with VBELN.
* Get sales order headers for message variable (SO number from ZRIV output)
IF LINES( gt_cmfp ) IS NOT INITIAL.
SELECT *
FROM vbak INTO TABLE gt_vbak
FOR ALL ENTRIES IN gt_cmfp "--> Change
WHERE vbeln = gt_cmfp-msgv2.
ENDIF.Regards
‎2010 Jul 19 3:43 PM
Thank you!
Get sales order headers for message variable (SO number from ZRIV output)
IF LINES( gt_cmfp ) IS NOT INITIAL.
SELECT *
FROM vbak INTO TABLE gt_vbak
FOR ALL ENTRIES IN gt_cmfp
WHERE vbeln = gt_cmfp-msgv2(10).
ENDIF.
But for some reason it nor select any data
I will try also other proposition, with LOOP/SELECT.