Application Development 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: 

Can I invoke

Former Member
0 Kudos

Hi all,

While batch goes on, when it comes to a predefined number, I want he remaining items should be belong to another order and hence I need to create a new order and group the rest of the items to this vbeln.

How can I do that?

Thanks.

2 REPLIES 2

hymavathi_oruganti
Active Contributor
0 Kudos

hi deniz,

can u pls explain clearly.

0 Kudos

Hi Hymavathi,

The code is this:


form siparisbatch.
 data : lmenge(14) type c,
        warning type string.
* PERFORM OPEN_GROUP.
 describe table item lines count.
 countnow = 0.
 loop at order.
  loop at rejecttab where no = order-no
                      and kdmat is initial.
   exit.
  endloop.
  check sy-subrc <> 0.
  PERFORM BDC_DYNPRO USING 'SAPMV45A' '0101'.
  PERFORM BDC_FIELD  USING 'BDC_OKCODE' '/00'.
  PERFORM BDC_FIELD  USING 'VBAK-AUART' order-auart.
  PERFORM BDC_FIELD  USING 'VBAK-VKORG' order-vkorg.
  PERFORM BDC_FIELD  USING 'VBAK-VTWEG' order-vtweg.
  PERFORM BDC_FIELD  USING 'VBAK-SPART' order-spart.

  PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
  PERFORM BDC_FIELD  USING 'BDC_OKCODE' '/00'.
  PERFORM BDC_FIELD  USING 'KUAGV-KUNNR' order-sipvr.
  PERFORM BDC_FIELD  USING 'KUWEV-KUNNR' order-tesal.
  PERFORM BDC_FIELD  USING 'RV45A-KETDAT' order-ketdat. " &#304;st. Tsl. Trh.
  PERFORM BDC_FIELD  USING 'RV45A-DWERK' p_werks.
  PERFORM BDC_FIELD  USING 'VBKD-BSTKD' order-no.
  write p_datum to tarih.
  PERFORM BDC_FIELD  USING 'VBKD-BSTDK' tarih. " SAS Tarihi
  PERFORM BDC_FIELD  USING 'VEDA-VBEGDAT' tarih. " Geçerlilik ba&#351;l.
  PERFORM BDC_FIELD  USING 'VEDA-VENDDAT' '31.12.9999'.
  if not p_prsdt is initial.
   PERFORM BDC_FIELD  USING 'VBKD-PRSDT' order-prsdt.
  else.
   PERFORM BDC_FIELD  USING 'VBKD-PRSDT' tarih. " Fiyatland&#305;rma tarihi
  endif.
  PERFORM BDC_FIELD  USING 'VBAK-AUGRU' p_augru.

*  clear warning.
  refresh ireject.
  loop at rejecttab into ireject
                    where no = order-no
                      and not kdmat is initial.
   append ireject.
*   concatenate warning ', ' ireject-kdmat into warning.
  endloop.
  if sy-subrc = 0.
*   replace ',' with '' into warning.
*   concatenate 'Sip: ' order-no ';' warning into warning.
*   message I011 with warning.
   call screen 500 starting at 15 5 ending at 73 21.
  endif.
  Data : count type i.
  count = 0.
  loop at item where no = order-no
                 and tesal = order-tesal
                 and ketdat = order-ketdat.

  count = count + 1.
   loop at rejecttab where no = item-no
                       and kdmat = item-kdmat(8).
    exit.
   endloop.
   check sy-subrc <> 0.

*   perform check_availability_item using order-vkorg order-vtweg
*                                         item-kdmat item-kwmeng.
*   if item-kwmeng <= 0.
*    message I012 with order-no item-kdmat.
*    continue.
*   endif.

   PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
   PERFORM BDC_FIELD  USING 'BDC_OKCODE' '=POAN'.

   PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
   PERFORM BDC_FIELD  USING 'BDC_OKCODE' '/00'.
   write item-kwmeng to lmenge decimals 0.
   condense lmenge.
   PERFORM BDC_FIELD  USING 'RV45A-KWMENG(02)' lmenge.

   CALL FUNCTION 'WSTP_CONVERT_UNIT'
    EXPORTING
     P_ACTION          = '04'
     P_MEINH_IN        = item-vrkme
    CHANGING
     P_MEINH_OUT       = item-vrkme.

   PERFORM BDC_FIELD  USING 'VBAP-VRKME(02)' item-vrkme.
   if p_bcode = 'X'.
    clear mara-matnr.
    if vrkmb is initial. " TÖB Barkodu
     select single mara~matnr
       into (mara-matnr)
       from mean
      inner join mara on mara~matnr = mean~matnr
      where mean~meinh = mara~meins
        and mean~ean11 = item-ean11
        and mean~eantp in so_eantp.
   else.
     select single mean~matnr
       into (mara-matnr)
       from mean
      where mean~meinh = vrkmb
        and mean~ean11 = item-ean11
        and mean~eantp in so_eantp.
   endif.
    PERFORM BDC_FIELD  USING 'VBAP-MATNR(02)' mara-matnr.
   else.
    PERFORM BDC_FIELD  USING 'VBAP-KDMAT(02)' item-kdmat.
   endif.

   perform teklifpercent using ' sipari&#351; girildi'.
  endloop.

  PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
  PERFORM BDC_FIELD  USING 'BDC_OKCODE' 'T01'.

  PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
  PERFORM BDC_FIELD  USING 'BDC_OKCODE' '=SICH'.
*  PERFORM BDC_FIELD  USING 'RV45A-DWERK' p_werks.
  PERFORM BDC_FIELD  USING 'VBAK-AUGRU' p_augru.

  CALL TRANSACTION 'VA01' USING BDCDATA MODE p_tmods.
*  PERFORM BDC_TRANSACTION USING 'VA01'.
  refresh BDCDATA.
 endloop.
* PERFORM CLOSE_GROUP.
endform.

The requirement is this: When the item count is greater than or equal to 45 then a new order should be created, so how can I use the following code to create a new order.Should I control the item count and if it is 45, call this segment of the code..


PERFORM BDC_DYNPRO USING 'SAPMV45A' '0101'.
  PERFORM BDC_FIELD  USING 'BDC_OKCODE' '/00'.
  PERFORM BDC_FIELD  USING 'VBAK-AUART' order-auart.
  PERFORM BDC_FIELD  USING 'VBAK-VKORG' order-vkorg.
  PERFORM BDC_FIELD  USING 'VBAK-VTWEG' order-vtweg.
  PERFORM BDC_FIELD  USING 'VBAK-SPART' order-spart.

  PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
  PERFORM BDC_FIELD  USING 'BDC_OKCODE' '/00'.
  PERFORM BDC_FIELD  USING 'KUAGV-KUNNR' order-sipvr.
  PERFORM BDC_FIELD  USING 'KUWEV-KUNNR' order-tesal.
  PERFORM BDC_FIELD  USING 'RV45A-KETDAT' order-ketdat. " &#304;st. Tsl. Trh.
  PERFORM BDC_FIELD  USING 'RV45A-DWERK' p_werks.
  PERFORM BDC_FIELD  USING 'VBKD-BSTKD' order-no.
  write p_datum to tarih.
  PERFORM BDC_FIELD  USING 'VBKD-BSTDK' tarih. " SAS Tarihi
  PERFORM BDC_FIELD  USING 'VEDA-VBEGDAT' tarih. " Geçerlilik ba&#351;l.
  PERFORM BDC_FIELD  USING 'VEDA-VENDDAT' '31.12.9999'.
  if not p_prsdt is initial.
   PERFORM BDC_FIELD  USING 'VBKD-PRSDT' order-prsdt.
  else.
   PERFORM BDC_FIELD  USING 'VBKD-PRSDT' tarih. " Fiyatland&#305;rma tarihi
  endif.
  PERFORM BDC_FIELD  USING 'VBAK-AUGRU' p_augru.

Thanks.