. where do u mark a character as line item
hi this is ramireddy
please send me to my mail
[email protected]
Go to options - mail options - general.
At the bottom of the screen there is an option to change the font size. Advanced settings.
Change it to large, or extra large.
If you want more flexibility in handling your e-mail, then an e-mail program will give you more options.
See Thunderbird setup for BT Yahoo e-mail
There are some useful help pages here, for BT Broadband customers only, on my personal website.
BT Broadband customers - help with broadband, WiFi, networking, e-mail and phones.
Similar Messages
-
Hi friends!
The auditor suggest us "flag the line item option in the dimensions with high cardinality, ie: document number, material number"
In my cubes have 0customer in dimension C toghether with other other characteristics, and 0material in dimension M together to other characteristics..
a) is the auditor suggest ok?
b) do I need mark this dimension as 'line item' in my cubes if the dimension M or C has more than one char?
c) do I need change the arquitecture in my cube and leave 0material alone in dimension M and in dim C only the char 0customer?
Thanks in advance!Regarding High Cardinality :
If the values in the table are distinct - where the uniqueness of the values is high - a Bitmap index is preferred since the unique values are high...
As for Line item dimension - in a Line Item dimension - only one characteristic is allowed in a line item dimension and the SIDs will get stored directly in the Fact Table and the additional lookup of SIDs with the master data is avoided...
a) is the auditor suggest ok?
I would say that high cardinality is a better option as opposed to line item dimension . For Document Number - a Line item Dimension is preferred since Document number is typically used in reporting but not much on searches for the same ..
Also this is with the information you have given - it could also be that there is some more information to it that Line Item Dimensions were suggested ...
b) do I need mark this dimension as 'line item' in my cubes if the dimension M or C has more than one char?
You can mark a dimension as Line Item only if there is one characteristic
c) do I need change the arquitecture in my cube and leave 0material alone in dimension M and in dim C only the char 0customer?
Keep document number in line item - run the report to analyze the sizes of fact versus dimensions and then rearrange the characteristics to get better ratios instead of making Material and Customer as Line item Dimensions...
Also Material and Customer are usually viewed along with their Nav Attribtes - making them as Line Item will not give you much savings in terms of performance
Edited by: Arun Varadarajan on Mar 25, 2010 1:13 AM -
Deletion of a line item from PO
Hi,
I have a PO with only one line item, where the line item is created with reference to PR and PR is created from Production order.
The GR and IR is done for PO.
But the line item is marked for deletion after IR.
Now i want to undelete the line item.
When i press undelete/unlock tab, it is througing an error
Requisition 90043093, item 00002, created from production order.
help how to undelete the line item.
I think many question will come to mind
1) Why you marked delete for a item after doing GR and IR.
But user did it with out knowledge.
I have tested the following scenarios...
1) I created a PO with referece to PR. Did GR and IR. Then marked for deletion of line item in PO. It allows for deletion. Then in change mode of PO i undelete/unlock. It allows to unlock with warning message. delivery completed.
But it is not i case of PO with referece to PR and PR is cretead from production order.
relavent answers rewarded with points.
Thanks
GiriHello Girisha,
Note the error message number and change the message settings from Error to warning in message attribution and then try to delete it.
Incase, you are not able to do that, I suggest to open issue with SAP through OSS.
Regards
Arif Mansuri -
'BAPI_SALESORDER_CHANGE - Want to change the Quantity on Line Item in SO
Hi
I am facing a problem. The requirement is to change the Sales Order Item Quantity. I basically planned to update the quantity of Schedule Item which needs to be changed. When I run the below code, it works and says the Sales Order changed succesfully. However I get an express message saying the Database update failure. I don't get any sort of technical information.
Appreciate if you could help me finding the error.
Thanks
regards
girish
Note --> I am trying to change the Quantity for 2 line item in SO '56' to 40 Units.
REPORT ZBAPI_SALESORD_CHANGE.
data : zBAPISDHD type /AFS/BAPISDHD,
zORDER_HEADER_INX TYPE /AFS/BAPISDHDX,
zSALESDOCUMENT type BAPIVBELN-VBELN.
data : zORDER_ITEMS_IN like /AFS/BAPISDITM occurs 0 with header line,
zORDER_ITEM_INX like /AFS/BAPISDITMX occurs 0 with header line,
zORDER_SCHEDULES_IN like /AFS/BAPISDSCHD occurs 0 with header line,
ZSCHEDULE_LINESX LIKE /AFS/BAPISDSCHDX occurs 0 with header line,
zORDER_PARTNERS like BAPIPARNR occurs 0 with header line,
zRETURN like BAPIRET2 occurs 0 with header line,
so_no type BAPIVBELN-VBELN,
zPARTNERCHANGES like BAPIPARNRC occurs 0 with header line.
data : l_comp_qty like zORDER_ITEMS_IN-COMP_QUANT.
data : g_qty like /AFS/BAPISDSCHD-REQ_QTY.
g_qty = 40.
l_comp_qty = 40.
clear : zBAPISDHD.
so_no = '0000000056'.
zBAPISDHD-REFOBJTYPE = '/AFS/ORDER'.
zBAPISDHD-SALES_ORG = 'BP01'.
zBAPISDHD-DISTR_CHAN = '02'.
zBAPISDHD-DIVISION = '01'.
zBAPISDHD-PMNTTRMS = '0001'.
zORDER_HEADER_INX-UPDATEFLAG = 'U'.
zORDER_HEADER_INX-SALES_ORG = 'X'.
zORDER_HEADER_INX-DISTR_CHAN = 'X'.
zORDER_HEADER_INX-DIVISION = 'X'.
zORDER_HEADER_INX-PMNTTRMS = 'X'.
**********ITEM ***************************************
zORDER_ITEMS_IN-ITM_NUMBER = '00020'.
zORDER_ITEMS_IN-MATERIAL = 'F1202'.
zORDER_ITEMS_IN-PLANT = 'BP01'.
zORDER_ITEMS_IN-ITEM_CATEG = 'TAS'.
zORDER_ITEMS_IN-SHIP_POINT = 'BP01'.
zORDER_ITEMS_IN-COMP_QUANT = l_comp_qty.
zORDER_ITEMS_IN-TARGET_QTY = l_comp_qty.
zORDER_ITEMS_IN-TARGET_QU = 'ST'.
append zORDER_ITEMS_IN.
zORDER_ITEM_INX-ITM_NUMBER = '00020'.
zORDER_ITEM_INX-UPDATEFLAG = 'U'.
zORDER_ITEM_INX-MATERIAL = 'X'.
zORDER_ITEM_INX-PLANT = 'X'.
zORDER_ITEM_INX-ITEM_CATEG = 'X'.
zORDER_ITEM_INX-SHIP_POINT = 'X'.
zORDER_ITEM_INX-COMP_QUANT = 'X'.
zORDER_ITEM_INX-TARGET_QTY = 'X'.
zORDER_ITEM_INX-TARGET_QU = 'X'.
append zORDER_ITEM_INX.
*********SCHEDULE LINE******************************
refresh zORDER_SCHEDULES_IN.
clear zORDER_SCHEDULES_IN.
zORDER_SCHEDULES_IN-ITM_NUMBER = '000020'.
zORDER_SCHEDULES_IN-SCHED_LINE = '0001'.
zORDER_SCHEDULES_IN-REQ_DATE = '20070525'.
zORDER_SCHEDULES_IN-DATE_TYPE = '1'.
zORDER_SCHEDULES_IN-SCHED_TYPE = 'CS'.
zORDER_SCHEDULES_IN-GRID_VALUE = 'BLK2728'.
zORDER_SCHEDULES_IN-REQ_CATEGORY = '1DE'.
zORDER_SCHEDULES_IN-REFOBJTYPE = '/AFS/ORDER'.
zORDER_SCHEDULES_IN-REQ_QTY = g_qty.
append zORDER_SCHEDULES_IN.
refresh ZSCHEDULE_LINESX.
clear ZSCHEDULE_LINESX.
ZSCHEDULE_LINESX-ITM_NUMBER = '000020'.
ZSCHEDULE_LINESX-SCHED_LINE = '0001'.
ZSCHEDULE_LINESX-UPDATEFLAG = 'U'.
ZSCHEDULE_LINESX-REQ_DATE = 'X'.
ZSCHEDULE_LINESX-DATE_TYPE = 'X'.
ZSCHEDULE_LINESX-SCHED_TYPE = 'X'.
ZSCHEDULE_LINESX-GRID_VALUE = 'X'.
ZSCHEDULE_LINESX-REQ_CATEGORY = 'X'.
ZSCHEDULE_LINESX-REFOBJTYPE = 'X'.
ZSCHEDULE_LINESX-REQ_QTY = 'X'.
append ZSCHEDULE_LINESX.
CALL FUNCTION '/AFS/BAPI_SALESORD_CHANGE'
EXPORTING
SALESDOCUMENT = so_no
ORDER_HEADER_IN = zBAPISDHD
ORDER_HEADER_INX = zORDER_HEADER_INX
SIMULATION =
BEHAVE_WHEN_ERROR = ' '
INT_NUMBER_ASSIGNMENT = ' '
LOGIC_SWITCH =
TABLES
RETURN = zRETURN
ORDER_ITEM_IN = zORDER_ITEMS_IN
ORDER_ITEM_INX = zORDER_ITEM_INX
ORDER_SCHEDULE_LINES = zORDER_SCHEDULES_IN
ORDER_SCHEDULE_LINESX = ZSCHEDULE_LINESX.
PARTNERS =
PARTNERCHANGES = zPARTNERCHANGES
PARTNERADDRESSES =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
ORDER_TEXT =
ORDER_KEYS =
CONDITIONS_IN =
CONDITIONS_INX =
EXTENSIONIN =
*CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
SALESDOCUMENT = so_no
ORDER_HEADER_IN = zBAPISDHD
ORDER_HEADER_INX = zORDER_HEADER_INX
TABLES
RETURN = zRETURN
ORDER_ITEM_IN = zORDER_ITEMS_IN
ORDER_ITEM_INX = zORDER_ITEM_INX
PARTNERS = zORDER_PARTNERS
PARTNERCHANGES = zPARTNERCHANGES
PARTNERADDRESSES =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
SCHEDULE_LINES = zORDER_SCHEDULES_IN
SCHEDULE_LINESX = ZSCHEDULE_LINESX.
ORDER_TEXT =
ORDER_KEYS =
CONDITIONS_IN =
CONDITIONS_INX =
EXTENSIONIN =
data : s_BAPIRET2 like BAPIRET2.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
importing
return = s_bapiret2.Hi,
Refer this code: Marked in bold
Get Line Item Details which are to be deleted
The line items fetched but not matching with ALV data
are the one which are copied from Reference Order
and should be deleted from our Sales Order
PERFORM get_line_item_details.
To get all the uploaded data
i_upload_2[] = i_upload[].
This is to be executed only if the SALES ORDER
IS CREATED WITH REFERENCE & User has selected
the record in ALV for Order Creation
LOOP AT i_upload INTO wa_upload_1
WHERE chkbx = 'X'
AND vbeln NE space.
MOVE wa_upload_1 TO wa_upload.
Clear Work Area/Local variables & Internal tables
CLEAR : l_sales_no,
l_item_number,
wa_header_in,
wa_header_inx,
wa_curr,
l_currency,
l_count,
l_counter.
REFRESH : i_cond,
i_cond_inx,
i_sch_in,
i_sch_inx,
i_items_in,
i_items_inx,
i_return,
i_partner_inx.
AT NEW seqno.
Get the Sales Order Number for corresponding record
READ TABLE i_result_all INTO wa_result_all WITH KEY
ref_no = wa_upload-vbeln
seqno = wa_upload-seqno.
IF sy-subrc EQ 0.
IF NOT wa_result_all-vbeln IS INITIAL.
l_sales_no = wa_result_all-vbeln.
ENDIF.
ELSE.
CONTINUE.
ENDIF.
READ TABLE i_curr INTO wa_curr
WITH KEY vbeln = l_sales_no.
Header Data
CLEAR wa_header_in.
wa_header_in-sales_org = wa_upload-vkorg.
wa_header_in-distr_chan = wa_upload-vtweg.
wa_header_in-division = wa_upload-spart.
wa_header_in-ref_doc = wa_upload-vbeln.
wa_header_in-ref_doc_l = wa_upload-vbeln.
wa_header_in-purch_no_c = wa_upload-bstnk.
CLEAR : wa_header_inx.
wa_header_inx-updateflag = 'U'.
wa_header_inx-sales_org = 'X'.
wa_header_inx-distr_chan = 'X'.
wa_header_inx-division = 'X'.
wa_header_inx-purch_no_c = 'X'.
Check Business Object
CLEAR : l_bus_object.
IF wa_upload-auart = 'ZY01' OR
wa_upload-auart = 'ZY07' OR
wa_upload-auart = 'ZY08' OR
wa_upload-auart = 'ZY09' OR
wa_upload-auart = 'ZY18' OR
wa_upload-auart = 'ZY94' .
l_bus_object = 'BUS2032'.
ELSEIF
wa_upload-auart = 'ZY10' OR
wa_upload-auart = 'ZY11' OR
wa_upload-auart = 'ZY27' OR
wa_upload-auart = 'ZY28' OR
wa_upload-auart = 'ZY92' OR
wa_upload-auart = 'ZY93'.
l_bus_object = 'BUS2102'.
ELSEIF
wa_upload-auart = 'ZY16' OR
wa_upload-auart = 'ZY30'.
l_bus_object = 'BUS2094'.
ELSEIF
wa_upload-auart = 'ZY17' OR
wa_upload-auart = 'ZY31'.
l_bus_object = 'BUS2096'.
ELSEIF
wa_upload-auart = 'ZY06' OR
wa_upload-auart = 'ZY26'.
l_bus_object = 'BUS2032'.
ENDIF.
*Populate Ship-to-party
IF NOT wa_upload-scode IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = '000000'.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_we.
wa_partner_inx-p_numb_new = wa_upload-scode.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Bill to Party
IF NOT wa_upload-bparty IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = '000000'.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_re.
wa_partner_inx-p_numb_new = wa_upload-bparty.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Payer
IF NOT wa_upload-payer IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = '000000'.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_rg.
wa_partner_inx-p_numb_new = wa_upload-payer.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Sales Rep
IF NOT wa_upload-salesrep IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = '000000'.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_ys.
wa_partner_inx-p_numb_new = wa_upload-salesrep.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Check condition type & unit price
For the following Document Types,
Condition Type & Unit Price are mandatory
CLEAR : l_item_number,
wa_upload_2.
LOOP AT i_upload_2 INTO wa_upload_2
WHERE seqno = wa_upload-seqno
AND chkbx = 'X'.
CLEAR : wa_cond,
wa_result.
Get the POSNR
PERFORM conv_alpha_input USING wa_upload_2-matnr
CHANGING wa_upload_2-matnr.
CLEAR : wa_items.
READ TABLE i_items INTO wa_items
WITH KEY vbeln = l_sales_no
matnr = wa_upload_2-matnr.
Check condition types
IF wa_upload_2-auart = 'ZY16' OR
wa_upload_2-auart = 'ZY17' OR
wa_upload_2-auart = 'ZY30' OR
wa_upload_2-auart = 'ZY31'.
If error, then update the output table
IF wa_upload_2-kschl IS INITIAL OR
wa_upload_2-kbetr IS INITIAL.
CLEAR : wa_result_all.
READ TABLE i_result_all INTO wa_result_all WITH KEY
ref_no = wa_upload_2-vbeln
mat_no = wa_upload_2-matnr
kwmeng = wa_upload_2-kwmeng
charg = wa_upload_2-charg
seqno = wa_upload_2-seqno
vbeln = l_sales_no.
IF sy-subrc EQ 0.
wa_result_all-status = 'E'. " E
wa_result_all-remarks = text-007. " Condition Type & Unit
Price is mandatory
MODIFY i_result_all FROM wa_result_all INDEX sy-tabix.
ENDIF.
CLEAR : wa_result_all.
CONTINUE.
Else update the condition type & unit price
ELSE.
wa_cond-itm_number = wa_items-posnr. " ITEM NO.
wa_cond-cond_type = wa_upload_2-kschl. " CNDTION TYPE
wa_cond-cond_value = wa_upload_2-kbetr. " UNIT PRICE
wa_cond-currency = wa_curr-waerk. " Currency
APPEND wa_cond TO i_cond.
CLEAR : wa_cond,
wa_upload_2.
ENDIF.
ELSE.
For other document type, fill Condition type & Unit Price
wa_cond-itm_number = wa_items-posnr. " ITEM NO.
wa_cond-cond_type = wa_upload_2-kschl. " CNDTION TYPE
wa_cond-cond_value = wa_upload_2-kbetr. " UNIT PRICE
wa_cond-currency = wa_curr-waerk.
APPEND wa_cond TO i_cond.
CLEAR : wa_cond,
wa_upload_2.
ENDIF.
CLEAR : wa_cond_inx.
wa_cond_inx-itm_number = wa_items-posnr.
wa_cond_inx-cond_type = wa_upload_2-kschl.
wa_cond_inx-cond_value = 'X'.
wa_cond_inx-currency = 'X'.
APPEND wa_cond_inx TO i_cond_inx.
CLEAR : wa_upload_2.
ENDLOOP.
DELETE Item Data from VBAP which has no matching entires in ALV
if SAME Material occurs more than once in ALV for same key then
count the no. of times the material occurs
CLEAR : wa_upload_3,
l_counter.
l_counter = 0.
LOOP AT i_upload_2 INTO wa_upload_3
WHERE seqno = wa_upload-seqno
AND chkbx = 'X'
AND matnr = wa_upload-matnr.
l_counter = l_counter + 1.
CLEAR : wa_upload_3.
ENDLOOP.
PERFORM conv_alpha_input USING wa_upload-matnr
CHANGING wa_upload-matnr.
check the corresponding no. of line items
for the above material
CLEAR : l_count,
wa_items.
LOOP AT i_items INTO wa_items
WHERE matnr = wa_upload-matnr
AND vbeln = l_sales_no.
CLEAR : wa_items_in,
wa_items_inx.
IF l_count GE l_counter.
wa_items_in-itm_number = wa_items-posnr.
wa_items_in-material = wa_items-matnr.
APPEND wa_items_in TO i_items_in.
CLEAR wa_items_inx.
wa_items_inx-itm_number = wa_items-posnr.
wa_items_inx-updateflag = 'D'. " Delete Record
wa_items_inx-material = 'X'.
APPEND wa_items_inx TO i_items_inx.
ENDIF.
l_count = l_count + 1.
ENDLOOP.
Convert material nos. to 18 digit no.
REFRESH : i_upload_3.
CLEAR : wa_upload_3.
i_upload_3[] = i_upload_2[].
LOOP AT i_upload_3 INTO wa_upload_3
WHERE seqno = wa_upload-seqno
AND chkbx = c_x.
PERFORM conv_alpha_input USING wa_upload_3-matnr
CHANGING wa_upload_3-matnr.
MODIFY i_upload_3 FROM wa_upload_3.
CLEAR : wa_upload_3.
ENDLOOP.
Delete materials which are not in ALV but are in line items
for that sales order
CLEAR : wa_upload_3,
wa_items_in,
wa_items.
LOOP AT i_items INTO wa_items WHERE vbeln = l_sales_no.
PERFORM conv_alpha_input USING wa_items-matnr
CHANGING wa_items-matnr.
READ TABLE i_upload_3 INTO wa_upload_3
WITH KEY matnr = wa_items-matnr.
IF sy-subrc NE 0.
wa_items_in-itm_number = wa_items-posnr.
wa_items_in-material = wa_items-matnr.
APPEND wa_items_in TO i_items_in.
CLEAR wa_items_inx.
wa_items_inx-itm_number = wa_items-posnr.
wa_items_inx-updateflag = 'D'. " Delete Record
wa_items_inx-material = 'X'.
APPEND wa_items_inx TO i_items_inx.
ENDIF.
CLEAR : wa_items,
wa_items_in,
wa_items_inx,
wa_upload_3.
ENDLOOP.
UPDATE Item Data RECORDS
CLEAR : wa_upload_2,
wa_items_in,
wa_items,
wa_items_inx,
wa_sch_in,
wa_sch_inx,
l_item_number.
LOOP AT i_upload_2 INTO wa_upload_2 WHERE
seqno = wa_upload-seqno
AND chkbx = 'X'.
Read the Material no. from ALV & check whether the
corresponding material exists in VBAP, if YES, then
Update the line item data
PERFORM conv_alpha_input USING wa_upload_2-matnr
CHANGING wa_items_in-material.
POPULATE ITEM NO -- Update the record
If line item has same material twice,
then appropriate POSNR should be assigned
READ TABLE i_items INTO wa_items
WITH KEY vbeln = l_sales_no
matnr = wa_items_in-material.
IF sy-subrc EQ 0.
If Reference is not contract then the process to assign
POSNR is as follows :- Check the corresponding material
from ALV with data from ITEMS, the record which matches
the data is selected & POSNR is assigned to it
IF wa_upload_2-oreason NE 'C'.
CLEAR : wa_items_in1.
READ TABLE i_items_in INTO wa_items_in1
WITH KEY material = wa_items_in-material
itm_number = wa_items-posnr.
IF sy-subrc EQ 0.
CLEAR : wa_items1.
LOOP AT i_items INTO wa_items1
WHERE vbeln = l_sales_no
AND matnr = wa_items_in-material.
IF wa_items1-posnr GT wa_items-posnr.
wa_items-posnr = wa_items1-posnr.
CLEAR : wa_items_in1.
READ TABLE i_items_in INTO wa_items_in1
WITH KEY material = wa_items_in-material
itm_number = wa_items-posnr.
IF sy-subrc NE 0.
EXIT.
ENDIF.
ENDIF.
CLEAR : wa_items1.
ENDLOOP.
ENDIF.
ELSE.
If Reference is CONTRACT then the process to assign
POSNR is different. Here if ALV has same material
twice & ITEMS has it once, then the second occurrence
of material of ALV is assigned a new POSNR
CLEAR : wa_items_in1,
l_insert.
READ TABLE i_items_in INTO wa_items_in1
WITH KEY material = wa_items_in-material
itm_number = wa_items-posnr.
IF sy-subrc EQ 0.
CLEAR : l_lines,
l_insert,
wa_items_in1.
DESCRIBE TABLE i_items_in LINES l_lines.
READ TABLE i_items_in INTO wa_items_in1 INDEX l_lines.
wa_items-posnr = wa_items_in1-itm_number + 10.
l_insert = 'X'.
CLEAR : wa_items_in1.
ENDIF.
ENDIF.
<b> wa_items_in-itm_number = wa_items-posnr.
wa_items_in-target_qty = wa_upload_2-kwmeng.
wa_items_in-target_qu = wa_items-zieme.
wa_items_in-store_loc = wa_upload_2-lgort.
wa_items_in-plant = wa_upload_2-werks.
wa_items_in-batch = wa_upload_2-charg.
wa_items_in-route = wa_upload_2-route.
wa_items_in-sales_unit = wa_upload_2-vrkme.
wa_items_in-short_text = wa_upload_2-maktx.
APPEND wa_items_in TO i_items_in.</b>
CLEAR wa_items_inx.
wa_items_inx-itm_number = wa_items-posnr.
IF l_insert EQ c_x.
wa_items_inx-updateflag = c_i. " Insert Record
ELSE.
wa_items_inx-updateflag = 'U'. " Update Record
ENDIF.
wa_items_inx-material = 'X'.
wa_items_inx-target_qty = 'X'.
wa_items_in-target_qu = 'X'.
wa_items_inx-store_loc = 'X'.
wa_items_inx-plant = 'X'.
wa_items_inx-batch = 'X'.
wa_items_inx-route = 'X'.
wa_items_inx-short_text = 'X'.
APPEND wa_items_inx TO i_items_inx.
ENDIF.
*Populate Ship-to-party
IF NOT wa_upload_2-scode IS INITIAL
AND l_insert IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = wa_items-posnr.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_we.
wa_partner_inx-p_numb_new = wa_upload_2-scode.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Bill to Party
IF NOT wa_upload_2-bparty IS INITIAL
AND l_insert IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = wa_items-posnr.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_re.
wa_partner_inx-p_numb_new = wa_upload_2-bparty.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Payer
IF NOT wa_upload_2-payer IS INITIAL
AND l_insert IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = wa_items-posnr.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_rg.
wa_partner_inx-p_numb_new = wa_upload_2-payer.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Sales Rep
IF NOT wa_upload_2-salesrep IS INITIAL
AND l_insert IS INITIAL.
CLEAR wa_partner_inx.
wa_partner_inx-document = l_sales_no.
wa_partner_inx-itm_number = wa_items-posnr.
wa_partner_inx-updateflag = 'U'.
wa_partner_inx-partn_role = c_ys.
wa_partner_inx-p_numb_new = wa_upload_2-salesrep.
wa_partner_inx-refobjtype = l_bus_object.
APPEND wa_partner_inx TO i_partner_inx.
ENDIF.
Populate schedule Line
CLEAR : l_datum,
wa_sch_in.
For following condition types, schedule lines not required
IF wa_upload_2-auart EQ 'ZY16' OR
wa_upload_2-auart EQ 'ZY17' OR
wa_upload_2-auart EQ 'ZY30' OR
wa_upload_2-auart EQ 'ZY31'.
ELSE.
wa_sch_in-itm_number = wa_items-posnr.
wa_sch_in-sched_line = '0001'.
wa_sch_in-req_qty = wa_upload_2-kwmeng.
IF NOT wa_upload_2-vdatu IS INITIAL.
REPLACE ALL OCCURRENCES OF '.' IN wa_upload_2-vdatu WITH ' '.
CONDENSE wa_upload_2-vdatu NO-GAPS.
CLEAR : l_datum.
l_datum = wa_upload_2-vdatu.
wa_sch_in-req_date = l_datum.
ENDIF.
APPEND wa_sch_in TO i_sch_in.
CLEAR wa_sch_inx.
wa_sch_inx-itm_number = wa_items-posnr.
wa_sch_inx-sched_line = '0001'.
IF wa_upload_2-oreason = 'C'.
wa_sch_inx-updateflag = c_i.
ELSE.
wa_sch_inx-updateflag = 'U'.
ENDIF.
wa_sch_inx-req_qty = 'X'.
wa_sch_inx-req_date = 'X'.
APPEND wa_sch_inx TO i_sch_inx.
ENDIF.
CLEAR : wa_upload_2,
wa_items_in,
wa_items,
wa_items_inx,
wa_sch_in,
wa_sch_inx.
ENDLOOP. "LOOP AT i_upload to wa_UPLOAD_2
Change Sales Order
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = l_sales_no
order_header_in = wa_header_in
order_header_inx = wa_header_inx
SIMULATION =
BEHAVE_WHEN_ERROR = ' '
INT_NUMBER_ASSIGNMENT = ' '
LOGIC_SWITCH =
TABLES
return = i_return
order_item_in = i_items_in
order_item_inx = i_items_inx
partners = i_partner
partnerchanges = i_partner_inx
PARTNERADDRESSES =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
schedule_lines = i_sch_in
schedule_linesx = i_sch_inx
ORDER_TEXT =
ORDER_KEYS =
conditions_in = i_cond
conditions_inx = i_cond_inx
EXTENSIONIN =
COMMIT
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = ' '
IMPORTING
return = wa_commit.
WAIT UP TO 5 SECONDS.
Best regards,
Prashant -
IDoc message Document or line item does not exist for invoice reference
Hello,
We activated IDoc message type FIDCC2. When cancelling documents which were created before the activation date the cancellation documents aren't posted in the receiving system. Message 'Document or line item does not exist for invoice reference' appears. How can I process these items (the reference document can't exist in the receiving system so the only option is to remove it from the IDoc?)?
Regards, JanThis is just a guide. Adapt it to your situation. I get this kind of error message where in the case, someone has marked for deletion a line item in the purchase order. In this regard, the IDoc errors out because the line item number being referenced is marked for deletion.
You can either delete the IDoc or have the deletion flag taken off the line item number in the PO or document number to enable you reprocess the IDoc number in question.
Elias -
Withholding Tax by Line Item (not by vendor)
Hi,
Thereu2019s been more than 1 occasion where clients request for withholding tax at line items (purchase equipment and service in 1 invoice. Equipment no withholding tax but service has withholding tax). However, as far as I know, the withholding tax is applicable by vendor and not by line item of the vendor. Is there any workaround on this?
Regards,
CheahIf i understand correctly, you have prepared PO for material plus service, service attracts WHT
you could prepare two different vendors - one for material, one for service - even though the vendor is same, and maintain WHT only in service vendor.
under PO there is condition types for service, there you can enter this second vendor who is providing service.
i think this way you issue should get resolved.
Pl share how to finally got thru it.
Thanks
Sanjay -
How to limit line items for 999
Hi Gurus
i heard that a standard setting should be there to all company codes to create a second accounting document as soon as the number of lines reaches 800 or above lines. Can you tell me where to check this settings ?
can you tell me the check on number of lines in the accounting document that is being generated.
kind regards
SunithaHi Sunitha,
As far as my knowledge goes, there is no specific configuration from FI side where you tell the system the maximum line items to be posted in a FI document. The limit of 999 is inbuilt in SAP programs. You have some options to summarise the line items in configuration.
SAP has given various notes on summarisation as well as problems we encounter when we post a document with more than 999 line items. In my experience, I have seen a second document being posted automatically when you have more line items with the 1st document containing 991 lines and where the second one has the rest of the lines.
Thanks
Aravind -
Send all line items of a sales order to IPC along with condition lines data
We wrote some pricing routines in R/3, where while doing he calculations for condition line item, we needed to pull in the material information for previous line items. So we exported vbap and imported it inside the routine to be able to have access to all the line items in the sales order. Now, we need to put in the same kind of logic in CRM/IPC. My question is what would be the equivalent of SAP's(import/export) commands for internal tables in case of IPC. I looked at the BADI CRM_COND_COM_BADI but still do not see how I can send all the line items data to IPC. So I guess, the question comes down to, how do I send all the line items of the sales order (whole VBAP in R/3 terms) to IPC along with the condition line data? Can someone please help?
ThanksHi Vaibhav,
If you can get the list of Sales orders which has deleted line items and force completion status. You can manage them in BI via lookup or navigation attribute.
Just my views I am sharing .
Thanks,
KDJ -
Different Line Item needs to be displayed in ALV
Hi All,
We have a requirement where in we have to display separate line items corresponding to the separate header in ALv.
we are using the FM REUSE_ALV_HIERSEQ_LIST_DISPLAY, but it is displaying all the line items in all different headers .
For Eg:
Desired Output:
Header Cooresponding to Account Number 1
Coum 1 coum2 colm 3 colm4 " for Acc#$1
Header Cooresponding to Account Number 2
Coum 1 coum2 colm 3 colm4 " for Acc#2
Output getting now:
Header Cooresponding to Account Number 1
Coum 1 coum2 colm 3 colm4 " for Acc#$1
Coum 1 coum2 colm 3 colm4 " for Acc#2
Header Cooresponding to Account Number 2
Coum 1 coum2 colm 3 colm4 " for Acc#$1
Coum 1 coum2 colm 3 colm4 " for Acc#2
Thanks in advance
Regards
Karan AryaHi,
Are you linking correclty the "key" structure?
Say, for example:
gs_key-header01 = 'ACCOUNT'.
gs_key-item01 = 'ACCOUNT'.
This should link your two tables by the "account" field.
and the call to the function
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = gt_fieldcat
i_tabname_header = 'GT_HEADER'
i_tabname_item = 'GT_ITEM'
is_keyinfo = gs_key
TABLES
t_outtab_header = gt_header
t_outtab_item = gt_item
EXCEPTIONS
program_error = 1
OTHERS = 2. -
Regarding Number of Line Items for Remittance Advice (REMADV)
Hi all,
We have an issue where the user tries to upload remittances line items. (More than 10,000 line items).
We had come across a statement as "Only 100 remittances are allowed per day in SAP and 1 remittance can have only 10,000 line items each".
However, we would like to confirm the same.
Please let us know if SAP permits maximum of 10,000 line items only. Also let us know if there is any standard SAP functionality/Function module that confirms the same.
Regards,
LavanyaI did all settings as told by you But still i am getting the same error Please specify the number of line items for the challans
Is there any other setting needed before this or after this?
Regards,
Mehul -
Control Line Items of table in Smartforms
Hi,
Please help me out for following problem which I am facing in smartforms.
Scenario u2013 I am trying to print Bank Payment voucher, In this I am passing two internal tables from my driver program, One internal table is for header details and other internal table for Line item details.
I am Looping for header details and under the templates, I am populating header data into itu2019s appropriate places, for line item details, I am using Table and able to populate line item details, Now say my line item should print only 5 line items in one page and if there are more than 5 line items , it should print next line items on next page. when new page will start it should print header details and footer details also,
In last last row, I have put the program code where I am counting the number of line items, and below that i have put 'Command' and in command condition, I have stated that if linecnt > 5 , go to next page%2 and in page 2, I have again copied the header details but , it is not working,
In short the Flow of Smartforms is given below.
Loop (For Header details)
Template
Template
Template
Table (For Printing Line Item Details)
(row 1
row 2
program line (Whre I am counting Number of Line items
Command (Go to next page is activated )
Template ( For Printing the footer details
Page%2
Template
Template
Template
Looking out for your valuable help .
Thanks and Regards
RaniAnd one thing more that line count may not be increasing. ..... so try to send the flag of page triggring from ur driver program.
as i have done here.
* Page Break after 21 Records means
count_rec = 1.
loop at it2_all_outlet_sale into wa_it2_all_outlet_sale.
count_loop = sy-tabix.
if count_rec = 21.
wa_it2_all_outlet_sale-zyear = '9998'.
modify it2_all_outlet_sale from wa_it2_all_outlet_sale index count_loop.
clear: count_rec.
endif.
add: 1 to count_rec.
endloop.
describe table it2_all_outlet_sale lines count_rec.
" This part of code for not page triggering after last 21 records
read table it2_all_outlet_sale into wa_it2_all_outlet_sale index count_rec.
if sy-subrc = 0.
count_loop = sy-tabix.
if wa_it2_all_outlet_sale-zyear = '9998'.
wa_it2_all_outlet_sale-zyear = '9999'.
modify it2_all_outlet_sale from wa_it2_all_outlet_sale index sy-tabix.
endif.
endif. -
Auc to Main Asset Line Item wise details
Hi Expert,
i have find and read number of thread regarding details of converted from AUC asset into Main Asset. in sap there is no any standard report where i got the details like AUC asset converted into Main Asset.
scenario is , we have create Capital PO say 5 lacks account assignment category A. under purchase we have given Internal order and Auc Asset No.2005001.
after received the goods. entry has been made.
now we have book some expenses against AUC PO say Rs.25000+10000+3000 =38000/- Total extra so now while settle the AUC asset to main asset amount would be 5,00,000+38000= 5,38,000/-.
in above process we do settle thru KO88 . AIAB and AIBU.
kindly help where which table we can see the line item details i.e Rs.38000 coz not any standard report to achieve the above process.
also give me the idea of Zreport. to achieve.
Thanks in advance.
Kind regards
Pranav Kr. GuptaMukthar sir,
we have already transferred from auc asset to Main assset. now we want to know line item wise how much cost occurred while AUC Asset time . say Rs.5,50,000/- same amount will come in Main asset number.
only accounting entry showing below
70 : GL No. 211200 Furniture main asset A/c No.i.e 2005009 5,50,000
75 GL No. 217300 WIP Others AUC Asset A/c i.e No. 3210000 5,50,000
Note : we want details of 5,50,000/- how many line items generated .
if i give on selection screen Main asset Number system will suppose to show the details of Rs. 5,50,000/- line item wise along with AUC Asset Number.
Kindly help . or if any standard report to get this information , like if i give main asset Number then system automatically show the details of AUC to Main Asset.
Thanks
Pranav Kr. Gupta -
Unable to print line item 1 and line item 2 into one box iin SMARTFORMS
helo,
i have printed in the folowing way.
but i want these two things to come ion one box....like page protection..
<b>Item Details
Item material term qty uom unit price total</b>
1 ..................................................................
2 ..................................................................
<b>Item Quality Specifications
characteristic basis limit oper value base unit per </b>
a ..............................................................
b ............................................................
Till the above part i have printed.
now i want to make those two items together in a group.
i have tried page protection but i dint get .
those two should together with a rectangular box around it.
if the those two will not fit in the box then it should go to second page.
kindly help me .
Regards,
deepthi.Hi
Which SRM version are you using ?
Please go through this ->
If you are using extended classic scenario you can simply delete the line items in the PO within SRM. This will replicate the appropriate changes in the backend.
You won't be able to change the PO in the backend as this is standard functionality.
You can also archive SRM PO incase you don't want to delete the same
PO Archiving
Once the purchase order is ordered and issued, it is a legal document between your company and the vendor. Only PO line items can be deleted and you can not delete PO header.
Deleting line item of PO is not enough. Make sure that PR or SC history does not contain any follow on document else system will interpret this a close PR or SC.
Because the PO was already printed or output exist... You cannot delete PO header.
Once the PO has been issued to vendor in any form, deletion is not possible at the header level, only possibility is deleting line items of the PO (deletion indicator marked for all the line items of PO). Only when the PO is rejected by the approver (in case any, which will be in the 'release rejected' status) or in held state (before issued to vendor), PO can be deleted at the header level, as the data still exists in SRM and not get transferred to R3 backend. If you want to forcibly delete the PO at the header level, flag DOC_CLOSED field in the table BBP_PDHGP (header tabe) through BBP_PD for the respective PO.
Try using the Function Modules "BBP_PD_PO_DB_DELETE".
BP_PD_PO_ITEM_DELETE_LOCAL
Some other relevant Function modules ->
BP_PD_PO_DB_DELETE_MULTI
BP_PD_PO_ITEM_DELETE_LOCAL
BBP_BS_POD : Spooler, delete PO
SPOOL_PO_DELETE :Spooler function to delete a po in core
SPOOL_PO_DELETE_DO :Spooler function to delete a po in core
Related links ->
Re: Cannot delete Limit Shopping Cart line item
Re: How to delete a PO in SRM
Re: SRM PO Deletion
Re: Delete item in the PO
Do let me know. Hope this will help.
Regards
- Atul -
PO complete indicator at PO line item
Hello Gurus,
We have a requirement where business wants one indicator in PO line item itself as "PO complete" and business wanrts that this indicator needs to be flagged automatically depends on below conditions fullfillment:-
- Indicator Delivery completed is set: EKBE- ELIKZ=X
- Invoice exists (for example, u201CInvoice amountu201D is greater than 0).
- Invoice(IR) amount is different from Actual delivery(GR) amount & the difference is not more than 5%.
If business wants to set this indicator manually then provision should be there.
Also, business wants one report which will show for which POs, this "PO complete" indicator set automatically & POs for which it has been set manually.
Thanks, Ravindra.I think you will confuse the busines with such an indicator, latest when you start archiving documents and SAP tells you that the document is not complete and cannot be archived.
A PO is not completed just because a user puts a X into a new invented field.
A PO is completed if the goods receipt was within delivery tolerances and invoiced quantity is equal to goods receipt quantity.
(this is just valid for inventory managed items in a PO)
if there was a difference between invoice and goods receipt, then business has to run GR/IR clearance with MR11, and not just put an X in an own field.
if the GR quantity is not within the tolerances, but business is okay with the receipted quantity, then they have to put their X into delivery completed indicator, not into an own developed field.
Such own developed field will be misleading for the process. After a while when you have the mess in your system with thousand of orders that have the Z-indicator for complete but are not really complete in SAP sense, then they will point the finger to you and say that they have set the indicator for complete but you have not taken care that SAP understood it.
So you would need to add a lot coding to perform all the checks that are executed for data archiving to allow setting of completeness or refuse it with a certain error message. Or coding to trigger BAPIs to set delivery compete indicator and to adjust order quantity or run MR11 clearing etc when this indicator is activated. -
Hi All
I am working on an requirment where the business needs to block the line item of old purchase order . when they are trying to block they are getting error message due to invalid line item master data at the time of blocking . Since the number of PO's are large it is not possible to process each po and determine the error .
I would like to know if there is any standard report which would let know the line item error of an PO ? If not what would be the best solution to capture those error ?
Regards
AuroHi,
Try with Delivery completed indicator in Delivery tab of old POs, if the intention is to stop procuring the materials in old POS.
Else go for mass maintenance but be very careful and cautious here
Regards,
Uzair
Maybe you are looking for
-
Trying to update my iphone to v.5.1.1 however it downloads the version but just at the end of updating my phone I get the message: iTunes could not back up the iphone as the back up was corrupt or not compatible. How can I fix this? Thanks
-
Is there more simple interface library than OCI for C.
I read OCI 8.0 documentation and I think that API like CLI XOpen standard but this standard is much complicated. So I am looking for a way to interacting with server in manner such as PostgreSQL interface library or MYSQL interface library or Sybase
-
Adjustment using SPAU for Objects Without Modification Assistant
Hi How to adjust Objects under Without Modification Assistant. For example if there is an issue with custom program or BAPI, do I have to manually edit them and adjust to old version. Cheers Senthil
-
PPMDT Manager's Desktop Authorization
Hello, We have manager' desktop setup so that manager can only see employees in their own organizations. That is good. The problem is managers authorized for se16 and see info type data employees NOT in their own organizations. That is not good. Do
-
How to insert proper quotation marks?
How can we do this in Design View? I'm looking for something like an "Insert Special Character" menu option. Going into Code View and entering &ldquo ... &rdquo is an uncomfortable workaround.