cancel
Showing results for 
Search instead for 
Did you mean: 

Function module to add a new line item for an outbound delivery

Former Member
0 Kudos

hi experts

i want to know that which fm is responsible to add a new line item in delivery document i found a fm BAPI_OUTB_DELIVERY_CHANGE but it does not get calls when we created a new line item in delivery docuent

please help me out

regards

rahul

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

bdc

former_member470288
Participant
0 Kudos

Hi Bhokal,

could you please post the code that you used to solve it using BDC?

I have a very similar problem.

Thanks!!

Carles

Former Member
0 Kudos

DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

DATA: E_GROUP_OPENED.

data: lt type STANDARD TABLE OF likp,

ls type likp.

start-of-selection.

  • TABLES: lips.

TABLES: T100.

parameter:

delv_no type VBELN,

mat_no type MATNR,

quant type string.

select VBELN BLDAT WADAT WAUHR BTGEW GEWEI from likp into CORRESPONDING FIELDS OF TABLE lt

where VBELN = delv_no.

read table lt into ls index 1.

loop at lt into ls.

perform bdc_dynpro using 'SAPMV50A' '4004'.

perform bdc_field using 'BDC_CURSOR'

'LIKP-VBELN'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'LIKP-VBELN'

delv_no.

perform bdc_dynpro using 'SAPMV50A' '1000'.

perform bdc_field using 'BDC_OKCODE'

'=SICH_T'.

  • perform bdc_field using 'LIKP-BLDAT'

  • '12.12.2003'.

perform bdc_field using 'BDC_CURSOR'

'LIPSD-g_LFIMG(06)'.

perform bdc_field using 'LIPS-MATNR(06)'

mat_no.

perform bdc_field using 'LIPSD-G_LFIMG(06)'

quant.

perform bdc_transaction using 'VL02N'.

ENDLOOP.

  • perform close_group.

----


  • Start new screen *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR BDCDATA.

BDCDATA-PROGRAM = PROGRAM.

BDCDATA-DYNPRO = DYNPRO.

BDCDATA-DYNBEGIN = 'X'.

APPEND BDCDATA.

ENDFORM. "BDC_DYNPRO

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

ENDFORM. "BDC_FIELD

----


  • Start new transaction according to parameters *

----


FORM BDC_TRANSACTION USING TCODE.

DATA: L_MSTRING(480).

DATA: L_SUBRC LIKE SY-SUBRC.

REFRESH MESSTAB.

CALL TRANSACTION TCODE USING BDCDATA

MODE 'N'

UPDATE 'L'

MESSAGES INTO MESSTAB.

L_SUBRC = SY-SUBRC.

read table messtab with key msgtyp = 'E'.

if sy-subrc = 0.

SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA

AND ARBGB = MESSTAB-MSGID

AND MSGNR = MESSTAB-MSGNR.

IF SY-SUBRC = 0.

L_MSTRING = T100-TEXT.

IF L_MSTRING CS '&1'.

REPLACE '&1' WITH MESSTAB-MSGV1 INTO L_MSTRING.

REPLACE '&2' WITH MESSTAB-MSGV2 INTO L_MSTRING.

REPLACE '&3' WITH MESSTAB-MSGV3 INTO L_MSTRING.

REPLACE '&4' WITH MESSTAB-MSGV4 INTO L_MSTRING.

ELSE.

REPLACE '&' WITH MESSTAB-MSGV1 INTO L_MSTRING.

REPLACE '&' WITH MESSTAB-MSGV2 INTO L_MSTRING.

REPLACE '&' WITH MESSTAB-MSGV3 INTO L_MSTRING.

REPLACE '&' WITH MESSTAB-MSGV4 INTO L_MSTRING.

ENDIF.

CONDENSE L_MSTRING.

WRITE: / MESSTAB-MSGTYP, L_MSTRING(250).

ELSE.

WRITE: / MESSTAB.

ENDIF.

endif.

    • WRITE: / 'CALL_TRANSACTION',

    • TCODE,

    • 'returncode:'(I05),

    • L_SUBRC,

    • 'RECORD:',

    • SY-INDEX.

    • LOOP AT MESSTAB.

    • SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA

    • AND ARBGB = MESSTAB-MSGID

    • AND MSGNR = MESSTAB-MSGNR.

    • IF SY-SUBRC = 0.

    • L_MSTRING = T100-TEXT.

    • IF L_MSTRING CS '&1'.

    • REPLACE '&1' WITH MESSTAB-MSGV1 INTO L_MSTRING.

    • REPLACE '&2' WITH MESSTAB-MSGV2 INTO L_MSTRING.

    • REPLACE '&3' WITH MESSTAB-MSGV3 INTO L_MSTRING.

    • REPLACE '&4' WITH MESSTAB-MSGV4 INTO L_MSTRING.

    • ELSE.

    • REPLACE '&' WITH MESSTAB-MSGV1 INTO L_MSTRING.

    • REPLACE '&' WITH MESSTAB-MSGV2 INTO L_MSTRING.

    • REPLACE '&' WITH MESSTAB-MSGV3 INTO L_MSTRING.

    • REPLACE '&' WITH MESSTAB-MSGV4 INTO L_MSTRING.

    • ENDIF.

    • CONDENSE L_MSTRING.

    • WRITE: / MESSTAB-MSGTYP, L_MSTRING(250).

    • ELSE.

    • WRITE: / MESSTAB.

    • ENDIF.

    • ENDLOOP.

SKIP.

REFRESH BDCDATA.

ENDFORM. "BDC_TRANSACTION

----


  • end batchinput session *

  • (call transaction using...: error session) *

----


FORM CLOSE_GROUP.

IF E_GROUP_OPENED = 'X'.

CALL FUNCTION 'BDC_CLOSE_GROUP'.

WRITE: /.

WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06).

E_GROUP_OPENED = ' '.

ENDIF.

ENDFORM. "CLOSE_GROUP

david_ruiz
Active Participant
0 Kudos

HI,

I would recommend IDoc DELVRY03 (Function Module IDOC_INPUT_DELVRY) as this IDOc is intended for precisely delivery

changes.

I hope this helps.. Rate it if neeful.

david

Lakshmipathi
Active Contributor
0 Kudos

If you want to add a new line item in delivery, you can do so manually subject to your IMG settings in OVLK.

thanks

G. Lakshmipathi

Former Member
0 Kudos

what are setting to see in the OVLK for adding line item in delivery.

Regards,

Dharminder Singh

Edited by: Dharmender 11 on Mar 5, 2011 11:07 AM

Former Member
0 Kudos

hi

i dont want to add line item manually i want to do it by by report

my requirement is to add line item for some specific incoterms and line item should be added automatically for that incoterms

so please help me with any fm which can do this or any other by which i can add line item through report.

thanks in advance

Former Member
0 Kudos

done through BDC.