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_BATCH_CREATE

Former Member
0 Likes
2,336

Hi,

I have to add new batch to material and I'm doing this

by below code:

CALL FUNCTION 'BAPI_BATCH_CREATE'

EXPORTING

material = lv_lips-matnr

batch = lv_new_batch

plant = lv_lips-werks

batchstoragelocation = lv_lips-lgort

TABLES

return = rettab.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

I have tested it also in transaction se37, but when I do this using

my code batch isn't created.

lv_new_batch - number of batch is correct i'm sure

Is there someone how can help me ??

Regards,

Greg.

4 REPLIES 4
Read only

Former Member
0 Likes
1,667

Hi,

Put a break-point after the BAPI for Bartch & check the Contents of table rettab. IF the there is no Error message in the internal table then use the below mentioned for for commit:


    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        wait = 'X'.

Reward points if helful answer.

Ashvender

Read only

Former Member
0 Likes
1,667

BAPI_CRATE_BATCH doesn't make any errors,

and I've already used commit with wait parametr

and it is still the same 😕

Read only

Former Member
0 Likes
1,667

Hi,

Here is a sample code for the use of this BAPI. Check if this helps -

----


  • Report ZTESTBAPI *

  • This is a dummy program designed to show how to create a batch and *

  • then apply/change characteristics via BAPI control. *

----


REPORT ztestbapi.

TABLES: klah, ksml, cabn.

  • holds data for charcateristics with type NUM

DATA: BEGIN OF numtab OCCURS 0.

INCLUDE STRUCTURE bapi1003_alloc_values_num.

DATA: END OF numtab.

  • holds data for charcateristics with type CHAR/DATE

DATA: BEGIN OF chatab OCCURS 0.

INCLUDE STRUCTURE bapi1003_alloc_values_char.

DATA: END OF chatab.

  • holds data for charcateristics with type CURR

DATA: BEGIN OF curtab OCCURS 0.

INCLUDE STRUCTURE bapi1003_alloc_values_curr.

DATA: END OF curtab.

  • Error return table

DATA: BEGIN OF rettab OCCURS 0.

INCLUDE STRUCTURE bapiret2.

DATA: END OF rettab.

DATA: BEGIN OF it_ksml OCCURS 0.

INCLUDE STRUCTURE ksml.

DATA: END OF it_ksml.

  • characteristic names

DATA: BEGIN OF it_cabn OCCURS 0,

atinn LIKE cabn-atinn,

atnam LIKE cabn-atnam,

atfor LIKE cabn-atfor,

END OF it_cabn.

DATA: BEGIN OF it_object OCCURS 0.

INCLUDE STRUCTURE bapi1003_object_keys.

DATA: END OF it_object.

  • example of an object key 00000000000730000007505847897897

DATA: w_object LIKE bapi1003_key-object.

  • Change these defaults to suit your system

PARAMETERS: p_matnr LIKE mara-matnr OBLIGATORY DEFAULT '7300000',

p_werks LIKE t001w-werks OBLIGATORY DEFAULT '0750',

p_charg LIKE mcha-charg OBLIGATORY DEFAULT '5847897898',

p_lgort LIKE dfbatch-lgort OBLIGATORY DEFAULT '1000',

p_klart LIKE klah-klart OBLIGATORY DEFAULT '022',

p_class LIKE klah-class OBLIGATORY DEFAULT 'RETREAD'.

INITIALIZATION.

PERFORM get_characteristics.

START-OF-SELECTION.

PERFORM create_batch.

PERFORM bapi_commit.

PERFORM build_object_key.

PERFORM extract_original_batch.

END-OF-SELECTION.

PERFORM update_original_batch.

PERFORM bapi_commit.

----


  • FORM get_characteristics *

----


FORM get_characteristics.

  • extract the characteristic names for KLART/CLASS

CLEAR: klah, ksml, it_cabn.

REFRESH it_cabn.

SELECT SINGLE clint FROM klah

INTO CORRESPONDING FIELDS OF klah

WHERE klart = p_klart

AND class = p_class.

IF syst-subrc = 0.

SELECT * FROM ksml

INTO CORRESPONDING FIELDS OF ksml

WHERE clint = klah-clint.

SELECT SINGLE * FROM cabn

INTO CORRESPONDING FIELDS OF cabn

WHERE atinn = ksml-imerk.

IF syst-subrc = 0.

it_cabn-atinn = cabn-atinn.

it_cabn-atnam = cabn-atnam.

it_cabn-atfor = cabn-atfor.

APPEND it_cabn.

ENDIF.

ENDSELECT.

ENDIF.

ENDFORM.

----


  • FORM create_batch *

----


FORM create_batch.

CLEAR: rettab.

REFRESH: rettab.

  • create the batch using screen values, you will most likely have to

  • determine the next batch number from the number range.

<b>CALL FUNCTION 'BAPI_BATCH_CREATE'</b>

EXPORTING

material = p_matnr

batch = p_charg

plant = p_werks

batchstoragelocation = p_lgort

TABLES

return = rettab.

ENDFORM.

----


  • FORM build_object_key *

----


FORM build_object_key.

  • build the object key

CLEAR: it_object, rettab.

REFRESH: it_object, rettab.

it_object-key_field = 'MATNR'.

it_object-value_int = p_matnr.

APPEND it_object.

it_object-key_field = 'WERKS'.

it_object-value_int = p_werks.

APPEND it_object.

it_object-key_field = 'CHARG'.

it_object-value_int = p_charg.

APPEND it_object.

CALL FUNCTION 'BAPI_OBJCL_CONCATENATEKEY'

EXPORTING

objecttable = 'MCHA'

IMPORTING

objectkey_conc = w_object

TABLES

objectkeytable = it_object

return = rettab.

ENDFORM.

----


  • FORM extract_original_batch *

----


FORM extract_original_batch.

  • extract the original characteristic data if exists

CLEAR: numtab, chatab, curtab, rettab.

REFRESH: numtab, chatab, curtab, rettab.

CALL FUNCTION 'BAPI_OBJCL_GETDETAIL'

EXPORTING

objectkey = w_object

objecttable = 'MCHA'

classnum = p_class

classtype = p_klart

TABLES

allocvaluesnum = numtab

allocvalueschar = chatab

allocvaluescurr = curtab

return = rettab.

ENDFORM.

----


  • FORM update_original_batch *

----


FORM update_original_batch.

  • Below are some examples of characteristics to update, obviously you

  • would change these to match the ones in your system

  • ATNAM is the characteristic name.

  • find characteristic format in it_cabn and call update routine

READ TABLE it_cabn WITH KEY atnam = 'TREAD'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam 'HW203'.

READ TABLE it_cabn WITH KEY atnam = 'ORRETREAD'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam '11225HW203C'.

READ TABLE it_cabn WITH KEY atnam = 'CASINGCODE'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam '7100044'.

READ TABLE it_cabn WITH KEY atnam = 'CASINGSTATUS'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam 'CUSTOMER'.

READ TABLE it_cabn WITH KEY atnam = 'CASEVAL'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam '0'.

READ TABLE it_cabn WITH KEY atnam = 'CUSTOMER'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam '0276933500'.

READ TABLE it_cabn WITH KEY atnam = 'FROMLOC'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam '0584'.

READ TABLE it_cabn WITH KEY atnam = 'BRAND'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam 'BRI'.

READ TABLE it_cabn WITH KEY atnam = 'NOCAPS'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam '1'.

READ TABLE it_cabn WITH KEY atnam = 'RETURNLOC'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam '0584'.

READ TABLE it_cabn WITH KEY atnam = 'RECDATE'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam '26.07.2004'.

READ TABLE it_cabn WITH KEY atnam = 'SENTDATE'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam '26.07.2004'.

READ TABLE it_cabn WITH KEY atnam = 'FLOC'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam '0750'.

READ TABLE it_cabn WITH KEY atnam = 'AUTOCLAVE'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam '4'.

READ TABLE it_cabn WITH KEY atnam = 'REPAIRCODE'.

PERFORM update_table USING it_cabn-atfor it_cabn-atnam 'MINOR'.

  • perform the update

PERFORM bapi_change.

ENDFORM.

----


  • FORM update_table *

----


FORM update_table USING atfor atnam value.

  • depending on data format, start building the characteristics table

  • ready for update

CASE atfor.

WHEN 'NUM'.

READ TABLE numtab WITH KEY charact = atnam.

IF syst-subrc = 0.

numtab-value_from = value.

MODIFY numtab INDEX syst-tabix.

ELSE.

numtab-charact = atnam.

numtab-value_from = value.

APPEND numtab.

ENDIF.

WHEN 'CURR'.

WHEN 'CHAR' OR 'DATE'.

READ TABLE chatab WITH KEY charact = atnam.

IF syst-subrc = 0.

chatab-value_neutral = value.

MODIFY chatab INDEX syst-tabix.

ELSE.

chatab-charact = atnam.

chatab-value_neutral = value.

APPEND chatab.

ENDIF.

ENDCASE.

ENDFORM.

----


  • FORM bapi_change *

----


FORM bapi_change.

  • Apply the characteristics to the batch.

CALL FUNCTION 'BAPI_OBJCL_CHANGE'

EXPORTING

objectkey = w_object

objecttable = 'MCHA'

classnum = p_class

classtype = p_klart

TABLES

allocvaluesnumnew = numtab

allocvaluescharnew = chatab

allocvaluescurrnew = curtab

return = rettab.

ENDFORM.

----


  • FORM bapi_commit *

----


FORM bapi_commit.

  • commit the changes

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

ENDFORM.

Regard

Read only

Former Member
0 Likes
1,667

Use FM VB_BATCH_CREATE followed by Transaction BAPI Commit