cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BAPI_BATCH_CREATE

Former Member
0 Likes
669

I am using BAPI_BATCH_CREATE to create batches .

i tried via SE37 it is working fine but when i tried it through my program though the parameters are same ..it is not creating batches..

can anybody help..

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Likes

Check if the material number and batch number are in internal format.

Check if you are issuing a commit using BAPI_TRANSACION_COMMIT after the call.

Srinivas

Former Member
0 Likes

Hope you are calling BAPI_TRANSACTION_COMMIT as well. Otherwise Batches will not be created.

Regards,

Siva

Former Member
0 Likes

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.

CALL FUNCTION 'BAPI_BATCH_CREATE'

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.