How to make the connection between a sale order and an invoice in SDK
Hi,
Im trying to make the connection between a sales order and an invoice using the SDK.
Here is how i create each of them:
Invoice:
public int SalesInvoiceInternalSave(string buisnesspartnerCardCode, DateTime dueDate, double discountPercent, string id, IList<InternalItem> items, ref int invoiceId)
int res = 0;
SAPbobsCOM.Documents invoice_entry = (SAPbobsCOM.Documents)Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oInvoices);
invoice_entry.CardCode = buisnesspartnerCardCode;
invoice_entry.DocDueDate = dueDate;
invoice_entry.DiscountPercent = discountPercent;
invoice_entry.Reference2 = id;
foreach (InternalItem item in items)
invoice_entry.Lines.WarehouseCode = item.Shopid;
invoice_entry.Lines.ItemCode = item.Code;
invoice_entry.Lines.ItemDescription = item.Name;
invoice_entry.Lines.Quantity = item.Quantity;
invoice_entry.Lines.UnitPrice = item.Price;
invoice_entry.Lines.Add();
res = invoice_entry.Add();
return res;
Sales order:
public Boolean SalesOrderInternalSave(string orderId, string buisnesspartnerCardCode, DateTime dueDate, IList<InternalItem> items)
SAPbobsCOM.Documents order_entry = (SAPbobsCOM.Documents)Company.GetBusinessObject(SAPbobsCOM.BoObjectTypes.oOrders);
order_entry.CardCode = buisnesspartnerCardCode;
order_entry.DocDueDate = dueDate;
foreach (InternalItem item in items)
order_entry.Lines.WarehouseCode = item.Shopid;
order_entry.Lines.ItemCode = item.Code;
order_entry.Lines.ItemDescription = item.Name;
order_entry.Lines.Quantity = item.Quantity;
order_entry.Lines.UnitPrice = item.Price;
order_entry.Lines.Add();
int res = order_entry.Add();
return res == 0;
What do i need to change to get the connection between the two of them?
And how do you insert a amount (not percent) discount into an invoice?
Regards,
Torben
Hi,
Add the sale order, then add the invoice. and while adding the invoice please add the following details to the invoce documen
invoice_entry.Lines.BaseEntry = 'Doc entry of the newly created SO
invoice_entry.Lines.BaseLine = 'Line No of the SO
invoice_entry.Lines.BaseType = 17 'For sales order document type.
Hope it helps,
Vasu Natari.
Similar Messages
-
How to make the status of a sales order complete of which PART DELIVERY
How to make the status of a sales order complete of which PARTIAL DELIVERY has already done. <b>(Assigning rejection status not accepted)</b>
Hi Gyana
There is no document with me. But I can confidently say that because I am using this functionality.
In my case I have created a Order Reason as "Short Closed". once you short close this order only the balance quantity gets rejected (provided you have already made previous delivery and PGI).
Try it in one of your test clients if you have. Once it is short Closed it wont also show in the orders due for processing in Production.
Also you can generate reports based on this if your customer wants to know how many order he has short closed, qty of item short closed etc.
Try it.
Rgds
Sunil -
How to make the line items of sales order cannot be deleted.
Hi All,
Is there any Enhancement spots or user-exits which make the line items of sales order cannot be deleted if item category is 'TAN'.
Thanks in Advance,
Sudhakar Reddy .AHi All,
If you doesn't want to delete sales order line items then we have write in the Include Program which has mentioned below and in the form .....endform.
Program Name : Include MV45AFZB
_Example:_
form userexit_check_xvbap_for_delet using us_error
us_exit.
IF .......
US_EXIT = CHARX.
ENDIF.
endform. -
How to keep the same cost in Sales order and return order?
Hi experts,
When I create a sales order with item cost 100 USD.
Then the cost of item changed and down to 90 USD.
When I do goods return refer to the sales order. How can I keep the same cost (VPRS) 100 USD but not 90 USD?
I made a test the cost in sales order is 100 USD but 90 USD in return sales order.
I want the cost in return sales order is 100 USD.
How can I do?
Thanks,
LanceHi,
Let me tell u my understanding of your requirement, after the sales the cost of the item is changed to some thing low than it was in sales order or invoice, in this scenario you need to transfer the cost of the material as it is in the sale order or invoice (which you are taking as reference to create a Return Order), am i right?
If so, you can proceed like this.
In the copy controls of Billing to Sales orders ( F2 to RE) we have the pricing type N assigned to it ( Transfer pricing components unchanged, New Cost) here the system is reading the change of the cost again from the material master. if you don' t want it to read the material master data again we can have a change try with pricing type 'D' (Copy Pricing elements unchanged), and try now.
let me know the result.
hope this will solve your problem. -
How to setup the connection between non-unicode client and unicode server?
hi.
we played the program in 4.6x that call a data from unicode server (ECC6.0) to non-unicode server. ( not played in the unicode server.)
When a program ended that English Character was normal, but Korean Chinease... was unknown text.
I think conversion from unicode to non-unicode is a main reason.
General Notes are issued for the unicode side rfc connection configuration.
but, i want to know how to setup into the non-unicode system to interface with unicode system.
I hope your great answer.Hi,
For taht you have to deploy korean and chinese langauges seprately on non unicode system.Then try to connect to the unicode system.It will work for you.
Regadrs
Vijay kumar -
How to test the connection between DSD backend and DSD connector
Dear all,
I am configuring the MDSD scenario .. and i want to insure that my customization is correct
How to test the connection between DSD Backend and DSD connector ??Hi Viren,
The problem is:
We have a new BW system. The basis people asked me to check the connection between this BW system and the R/3. There is only one client for now(100). I have logged into 100 and tried executing RSA1 to check the connection, but it gave a message box saying "You can only work in Client 000". Then I have treid logging into 000(just to make sure) and tried executing RSA1. Even here I got a message saying "The SAP BW system must not be operated in client 000". Now, I am not sure of what is wrong in clien 100. I am not sure if I have to do some settings before I access RSA1 or any other BW transaction. Could you please help me in this.
Also, I just checked the RFC destinations in BW. There is a destination created for our R/3 and I have noticed that they have given a remote UserID and password for remote login. I tried to check the Remote UserID in SU01 but there is no userID with that name. Could this be a problem?
Thanks,
RPK. -
How to establish the connection between crm and r/3
Hi,
Sorry for posting this question in this forum, i did not find any CRM forums.My question is,How to establish the connection between CRM and R/3...in my office i installed standard alone CRM system,but it is not talking to R/3.
Could any one tell me where to find adapters and plugins for this.
Thanks in advance.
AjeyHello Ajey,
in the case you mean the connection between R/3 and SAP CRM you should read the Best Practice Guides:
B01: CRM Generation
C71: CRM Connectivity
B09: CRM Replication
from http://help.sap.com/bp_crmv240/index.htm. There is a CRM Forum at http://www.sap.com/community/ and also at http://www.sapfans.com/.
Regards
Gregor -
How to make the link between the technical version and the packaging vers.
Hello,
Does anyone know how to make the link between the technical version number and the packaging version number ?
For exemple, I can download on the SAP Market Place the version B1iSN 8.8 PL7 but if I look into the B1iSN the version information, it returns B1iP_3.0_SP04_HF03.
This is quite confusing.
Thank you.Hi Gordon,
In fact this information is usefull for me. I was looking for a customer installation but he did not remember which version was installed. They are facing some problems. So I don't know if I have to update B1iSN or not to solve it.
B1iSN returns only the technical version number, but I would like to know which version was downloaded from the Market Place. -
Hi.
I read the posting regarding the options on Hotsyncing for Windows 7; however, I have some questions as I have a 64-bit system.
I have a Visor Pro that I'm trying to Sync up with my new laptop which is running Windows 7.
Steps I have taken:
* installed the Visor Palm Desktop 3.0.1 that came with the Visor (which the installation went well)
* The issue arises when I push the "Sync" button on the cradle and the following error message appears "The connection between your handheld computer and the destktop could not be established. Please check your setup and try again."
Since I have a 64-bit OS it appears that I have 2 options: 1) bluetooth or 2) Infrared.
I have to admit I don't know know how to do either of these (how can I tell if this Handspring Visor Pro has bluetooth (which I don't it does)?).
Then how about the Infrared option? I see on the PDA it has a red area that one can "beam" info. Is this the same as Infrared or my 2nd option?
I love my Visor and want to continue using it, but need to backup the valuable info!
Any help with this would be greatly appreciated!
THANKS!!!!!
Post relates to: Visor ProHello lwalbring and welcome to the Palm forums.
Your Visor, as you suspect, does not have Bluetooth, so you must use the IR HotSync option. Since you are using Windows 7 64-bit, I believe that you are going to have to upgrade to Palm Desktop 6.2.2 to make things work from an OS/Driver perspective.
Since you are using such an old device, you are also going to have to download and install the PalmHotSyncSetup Utility from Pimlico. This update turns on support for old Palm OS PDAs in Palm Desktop 6.2.2. Without the update, you won't be able to sync your Visor with Palm Desktop 6.2.2. The software is free and the link is all the way at the bottom of the screen.
Lastly, if your PC doesn't have an IR port on it, you will need to purchase a USB to IR adapter. Some laptops still have IR ports and most desktops don't.
Once you have all the pieces, you'll want to go back to the Windows 7 and Vista HotSync thread again, and follow the directions for setting up and configuring IR HotSyncs.
Alan G -
How to make all fields mandatory in sales order T- code VA01 initial screen
Dear all,
how to make all fields mandatory in sales order T- code VA01 initial screen itself
The fields are
Sales Organization
Distribution Channel
Division
Sales Office
Sales Group
Regards,
Amar ReddyHi,
You can use Transaction Variant to achieve this functionality.Please go through the following link which helps you in creating the same.
[Link|http://wiki.sdn.sap.com/wiki/display/Snippets/TransactionVariant-AStepbyStepGuidefor+Creation]
Regards,
Phani Prasad -
How to make a Integration between jdev10.1.2 and vss
How to make a Integration between jdev10.1.2 and vss to enable a version control.the help document tell to make a extension file, but how to do? thank you!
http://www.oracle.com/technology/products/jdev/101/htdocs/partners/addins/905resources.html
There is a link there to:
Creating a Version Control System Extension
A project with sample code to get you started -
How to clear the delivery group in sales order?
Dear All:
My sales order is auto created from CRM by BAPI, but in vbap table, the GRKOR field is 001, only one order , how to clear the delivery group in the sales order ?
Regards
Peter.Thread Locked - Reason Duplicate Post
How to clear the delivery group in sales order?
Please dont post the same query twice. Continue all your queries in one thread
G. Lakshmipathi -
How to change the Profit Center in Sales Order
Hi Gurus,
Previously they setted the profit center (YB999) in sales order, now i want to change the profit center and need to give the amount into this profit center 100500.
So, could you guide me how to change the profit center in sales order.
Thank you for your replies.....
Thanks & Regards,
Chandrababu.B
Edited by: Chandrababu Naidu on May 25, 2011 12:44 PMHi
If this SO is processed partially - i.e. transactions happened - You cant change it
You can use ABAP and change it in Debug mode, but not advisable... Better to short close the SO and open a new SO for Balance qty
br, Ajay M
Edited by: Ajay Maheshwari on May 25, 2011 5:10 PM -
How to pack the More than one sales order delivery qty in one packing
Hi Folks,
How to pack the more than one sales order quantity combinely during packing?
Thansk in advance and points wil be rewarded for the reply.
Best Regards
SrinivasPacking is done during Delivery.
In Sales order also Packing function is available but as a Packing proposal.
So actual packing is done in Delivery.
When you process several sales orders together, the sales order items having same Ship-to-party, Shipping point, Route, Delivery due date & Incoterm are combined into one Delivery in the standard system.
In the delivery overview screen,do the picking by subsequent function rom the menu bar, you will get a button "PACK", click on this system will take you to the packing screen.
In the packing screen, give the packaging mterial number, select the materials to be packed, select the packaging material also and the click on the "PACK" button. -
How to get the link between mara, ausp, cawn and cawnt tables
hello ABAPERS
i have got a requiremet in that i have to get the relation .
how to get the link between mara, ausp, cawn and cawnt tables and also type how can we get link between char value and char description in cawn and cawnt tables through ausp and mara tables.
I would be very thankful for ur help in advance.
Thanks & Regards.
soniHi,
Sample report using the linkage between tables;
report batch_char no standard page heading
line-size 132
line-count 58(1)
message-id mm.
Report by Batch Characteristic *
Description : Report by Batch Characteristic *
Declaration for Tables
tables: mara, " Material Master
mard, " Storage Location Data for Material
t001w, " Plants/Branches
t001l, " Storage Locations
cabn, " Characteristics
inob. " Link between Internal Number and Object
Declaration for Constants
constants : c_klart like ausp-klart value '023', " Class Type
c_obtab like inob-obtab value 'MCH1', " Database Table
c_flag type c value 'X', " Flag
c_c23 type i value '23', " Ratio
Constants for Ratio Categories
c_13 type p decimals 2 value '13.00', " For Ratio 13
c_1499 type p decimals 2 value '14.99', " For Ratio 14.99
c_15 type p decimals 2 value '15.00', " For Ratio 15
c_1699 type p decimals 2 value '16.99', " For Ratio 16.99
c_17 type p decimals 2 value '17.00', " For Ratio 17
c_1899 type p decimals 2 value '18.99', " For Ratio 18.99
c_19 type p decimals 2 value '19.00', " For Ratio 19
c_2099 type p decimals 2 value '20.99', " For Ratio 20.99
c_21 type p decimals 2 value '21.00', " For Ratio 21
c_2299 type p decimals 2 value '22.99', " For Ratio 22.99
c_23 type p decimals 2 value '23.00', " For Ratio 23
c_g23(4) type c value '>=23', " For Ratio >=23
c_ratio(5) value 'RATIO', " For Ratio
Constants for Storing Selected item field information
c_cursor1(15) value 'I_OUTPUT1-MEINS', " For Selected Base
" Unit of Measure
c_cursor2(15) value 'I_OUTPUT1-MATNR', " For Selected Base
" Material Number
c_cursor3(15) value 'I_OUTPUT1-MAKTX', " For Selected Base
" Material Des.
c_cursor4(15) value 'I_OUTPUT1-CLABS', "For Selected Base
" Stock Value
c_cursor5(15) value 'I_OUTPUT1-ATFLV', " For Selected Base
" Char.Value (Ratio)
c_cursor6(5) value 'C_G23'.
Declaration for Global Variables
data : g_exit type c, " Flag
g_clabs1(16) type c, " Quantity
g_clabs(18) type c, " Quantity
g_cursor(15) type c, " Cursor field name
g_matnr type mara-matnr, " Material Number
g_werks type mchb-werks, " Plant
g_atinn(30) type c. " Character.
Declaration for Internal tables
Internal table to hold Batch Stock data
data : begin of i_mchb occurs 0,
matnr like mchb-matnr, " Material Number
werks like mchb-werks, " Plant
lgort like mchb-lgort, " Storage Location
charg like mchb-charg, " Batch Number
clabs like mchb-clabs, " Stock Value
meins like mara-meins, " Unit of measure
atflo like ausp-atflv, " Char.Value (Ratio)
atflv like ausp-atflv, " Char.Value (Ratio)
end of i_mchb.
Internal table to hold Secondary List data
data : begin of i_mchb1 occurs 0,
werks like mchb-werks, " Plant
matnr like mchb-matnr, " Material Number
lgort like mchb-lgort, " Storage Location
charg like mchb-charg, " Batch Number
atinn like ausp-atinn, " Char.Value
clabs like mchb-clabs, " Stock Value
atflo like ausp-atflv, " Char.Value (Ratio)
atflv like ausp-atflv, " Char.Value (Ratio)
end of i_mchb1.
Internal table to get the Plant Name
data : begin of i_plant occurs 0,
werks like t001w-werks, " Plant
name1 like t001w-name1, " Name
end of i_plant.
Internal table to get the Material Description
data : begin of i_makt occurs 0,
matnr like makt-matnr, " Material
maktx like makt-maktx, " Description
end of i_makt.
Internal table to hold AUSP data
data : begin of i_ausp occurs 0,
objek like ausp-objek, " Object No
atinn like cabn-atinn, " Characteric value
atflv like ausp-atflv, " Characteristic Value
end of i_ausp.
Internal table to hold output data
data : begin of i_output occurs 0,
atinn like cabn-atinn, " Characteric value
werks like mchb-werks, " Plant
matnr like mchb-matnr, " Material Number
atnam like cabn-atnam, " Characteristic
atflv like ausp-atflv, " Char.Value (Ratio)
name1 like t001w-name1, " Plant Description
maktx like makt-maktx, " Material Description
clabs like mchb-clabs, " Stock Value
meins like mara-meins, " Base Unit of Measure
end of i_output.
Internal table to hold final Output data
data : begin of i_output1 occurs 0,
atinn like cabn-atinn, " Characteric value
werks like mchb-werks, " Plant
matnr like mchb-matnr, " Material Number
atnam like cabn-atnam, " Characteristic
atflv(32) type c, " Char.Value (Ratio)
name1 like t001w-name1, " Plant Description
maktx like makt-maktx, " Material Description
clabs like mchb-clabs, " Stock Value
meins like mara-meins, " Base Unit of Measure
end of i_output1.
Selection screen
selection-screen begin of block b1 with frame title text-001.
select-options: s_werks for t001w-werks obligatory, " Plant
s_lgort for t001l-lgort, " Stor.Location
s_matnr for mara-matnr obligatory, " Material No
s_atinn for cabn-atinn. " Character.
selection-screen end of block b1.
At selection screen
at selection-screen.
Validation of Selection Screen Fields
perform validate_screen.
Start of selection
start-of-selection.
Get the Material and Batch Stock data from MARA and MCHB Tables
perform get_mat_stock_data.
Get the Material Group Text and Plant Name from T023T and T001W Tables
perform get_plant_grp_data.
Append the data into final Output Internal Table after getting the
Characteristic Values data from INOB and AUSP Tables
perform append_final_data.
Processing if the Characteristics contain 'RATIO'
perform collect_ratio.
End-of-Page
end-of-page.
write /1(125) sy-uline.
End of selection
end-of-selection.
if g_exit <> c_flag.
Display the Report Output data
perform display_report.
endif.
Top-of-Page
top-of-page.
Write the Report and Column Headings
perform get_headings.
at line-selection
at line-selection.
if sy-lsind = 1.
perform display_batch.
endif.
Top of page during line-selection
top-of-page during line-selection.
perform heading_seclist.
Form validate_screen
Validation of Selection Screen fields
form validate_screen.
Validation of Plant
clear t001w.
if not s_werks[] is initial.
select werks
into t001w-werks
from t001w
up to 1 rows
where werks in s_werks.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Plant'(002).
endif.
endif.
Validation of Material Number
clear mara.
if not s_matnr[] is initial.
select matnr
into mara-matnr
from mara
up to 1 rows
where matnr in s_matnr.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Material'(003).
endif.
endif.
Validation of Storage Location
clear t001l.
if not s_lgort[] is initial.
select lgort
into t001l-lgort
from t001l
up to 1 rows
where lgort in s_lgort.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Storage Location'(004).
endif.
endif.
Validation of Characteristic Value
clear cabn.
if not s_atinn[] is initial.
select atinn
into cabn-atinn
from cabn
up to 1 rows
where atinn in s_atinn.
endselect.
if sy-subrc <> 0.
message e899 with 'Enter Valid Characteristic Value'(005).
endif.
endif.
Validation of Plant, Material and Storage Location
clear mard.
select matnr werks lgort
into (mard-matnr, mard-werks, mard-lgort)
from mard
up to 1 rows
where matnr in s_matnr and
werks in s_werks and
lgort in s_lgort.
endselect.
if sy-subrc <> 0.
message e899 with 'No Data found for the Selection Criteria'(006).
endif.
endform. "validate_screen
*& Form get_headings
Write the Report and Column Headings
form get_headings.
data: l_repid type sy-repid.
l_repid = sy-repid.
call function 'Y_STANDARD_HEADING'
exporting
repid = l_repid
heading1 = sy-title.
write:/1(125) sy-uline.
format color col_heading on.
write : /1 sy-vline, 2(18) 'Material Number'(008) centered,
20 sy-vline, 21(40) 'Material Description'(011) centered,
61 sy-vline, 62(22) 'Ratio'(009) centered,
84 sy-vline, 85(18) 'Quantity'(010) centered,
103 sy-vline, 104(20) 'Base Unit of Measure'(015) centered,
125 sy-vline.
write:/1(125) sy-uline.
format color off.
endform. "get_headings
*& Form get_mat_stock_data
Get the Material and Batch Stock data from MARA and MCHB Tables
form get_mat_stock_data.
clear: i_mchb,i_output, i_output1.
refresh: i_mchb,i_output, i_output1.
select a~matnr " Material Number
b~werks " Plant
b~lgort " Storage Location
b~charg " Batch Number
b~clabs " Stock Value
a~meins " Base Unit of Measure
into table i_mchb
from mara as a inner join mchb as b
on amatnr eq bmatnr
where b~matnr in s_matnr and
b~werks in s_werks and
b~lgort in s_lgort.
if sy-subrc <> 0.
g_exit = c_flag.
message s899 with 'No Data found for the Selection Criteria'(006).
stop.
endif.
sort i_mchb by matnr werks lgort charg.
endform. " get_mat_stock_data
*& Form get_plant_grp_data
Get the Material Group Text and Plant Name from T023T and T001W
form get_plant_grp_data.
if not i_mchb[] is initial.
Get the Plant Description from t001w Table
clear i_plant.
refresh i_plant.
select werks " Plant
name1 " Name
into table i_plant
from t001w
for all entries in i_mchb
where werks = i_mchb-werks.
Get the Material Description from MAKT Table
clear i_makt.
refresh i_makt.
select matnr " Material number
maktx " Material Description
into table i_makt
from makt
for all entries in i_mchb
where matnr = i_mchb-matnr and
spras = sy-langu.
sort i_plant by werks.
delete adjacent duplicates from i_plant comparing werks.
sort i_makt by matnr.
delete adjacent duplicates from i_makt comparing matnr.
endif.
endform. "form get_plant_grp_data.
*& Form append_final_data
Append the data into final Internal Table
form append_final_data.
data : l_matbatch(28),
l_tabix like sy-tabix.
if not i_mchb[] is initial.
loop at i_mchb.
l_tabix = sy-tabix.
clear l_matbatch.
concatenate i_mchb-matnr i_mchb-charg into l_matbatch.
move-corresponding i_mchb to i_output.
Get the Plant Description from i_plant Table
read table i_plant with key werks = i_mchb-werks binary search.
if sy-subrc = 0.
i_output-name1 = i_plant-name1.
endif.
Get the Material Description from i_makt Table
read table i_makt with key matnr = i_mchb-matnr binary search.
if sy-subrc = 0.
i_output-maktx = i_makt-maktx.
endif.
Get the Characteristic Values data from INOB and AUSP Tables
clear inob.
select single cuobj from inob
into inob-cuobj
where klart = c_klart and
obtab = c_obtab and
objek = l_matbatch.
if sy-subrc = 0.
select objek
atinn
atflv
from ausp
into table i_ausp
where objek = inob-cuobj and
atinn in s_atinn and
klart = c_klart.
sort i_ausp by objek atinn.
loop at i_ausp.
clear cabn.
select single atinn atnam from cabn
into (cabn-atinn,cabn-atnam)
where atinn = i_ausp-atinn.
if sy-subrc = 0.
If the ratio value is between 13-14.99, display 13
if cabn-atnam cs c_ratio.
if i_ausp-atflv between c_13 and c_1499.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_13.
If the ratio value is between 15-16.99, display 15
elseif i_ausp-atflv between c_15 and c_1699.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_15.
If the ratio value is between 17-18.99, display 17
elseif i_ausp-atflv between c_17 and c_1899.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_17.
If the ratio value is between 19-20.99, display 19
elseif i_ausp-atflv between c_19 and c_2099.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_19.
If the ratio value is between 21-22.99, display 21
elseif i_ausp-atflv between c_21 and c_2299.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_21.
If the ratio value is greater than or equal to 23, display 23
elseif i_ausp-atflv >= c_23.
i_mchb-atflo = i_ausp-atflv.
i_mchb-atflv = c_23.
endif. " Condition for RATIO values
else. " If characteristic does contain RATIO
i_mchb-atflv = i_ausp-atflv.
endif.
i_output-atinn = cabn-atinn.
i_output-atnam = cabn-atnam.
i_output-atflv = i_ausp-atflv.
i_mchb1-matnr = i_mchb-matnr.
i_mchb1-werks = i_mchb-werks.
i_mchb1-lgort = i_mchb-lgort.
i_mchb1-charg = i_mchb-charg.
i_mchb1-clabs = i_mchb-clabs.
i_mchb1-atinn = i_ausp-atinn.
i_mchb1-atflo = i_mchb-atflv.
i_mchb1-atflv = i_ausp-atflv.
append : i_output, i_mchb1.
clear i_mchb1.
modify i_mchb index l_tabix transporting atflo atflv .
endif.
endloop.
endif.
endloop.
endif.
Checking whether the table is filled or not
if not i_output[] is initial.
sort i_output by atinn werks matnr atflv.
else.
g_exit = c_flag.
message s899 with 'No Data found for the Selection Criteria'(006).
endif.
Delete the records where RATIO is less than 13.
delete i_output where atnam cs c_ratio and atflv lt c_13.
endform. "append_final_data
*& Form display_report
Display the Report Output data
form display_report.
data: l_tabix like sy-tabix.
loop at i_output1.
l_tabix = sy-tabix.
At new Characteristic
at new atinn.
read table i_output1 index l_tabix.
format color 1 intensified on.
write: /1 sy-vline, 2(20) 'Characteristic Name:'(007),
23(40) i_output1-atnam,
125 sy-vline.
format color off.
format color 4 intensified on.
write: /1 sy-vline, 2(20) 'Plant Name :'(022),
23(4) i_output1-werks, 29(30) i_output1-name1,
125 sy-vline.
format color off.
write /1(125) sy-uline.
endat.
clear: g_clabs, g_clabs1.
format color col_normal.
write :/1 sy-vline, 2(18) i_output1-matnr,
20 sy-vline, 21(40) i_output1-maktx,
61 sy-vline.
if i_output1-atflv = c_c23.
write: 62(22) c_g23 centered.
else.
shift i_output1-atflv left deleting leading space.
write: 62(22) i_output1-atflv centered.
endif.
write: 84 sy-vline,
103 sy-vline,
110(5) i_output1-meins.
If the quantity value is negative
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
format color off.
hide : i_output1.
new-line.
At end of material
at end of matnr.
sum.
move : i_output1-matnr to g_matnr.
format color 3 intensified on.
write /1(125) sy-uline.
write :/1 sy-vline, 2(25) 'Total for Material :'(012),
28(18) g_matnr.
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
write: 125 sy-vline.
format color off.
write /1(125) sy-uline.
endat.
At end of plant
at end of werks.
sum.
move : i_output1-werks to g_werks.
format color 3 intensified off.
write :/1 sy-vline, 2(25) 'Total for Plant :'(013),
28(4) g_werks.
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
format color off.
write /1(125) sy-uline.
endat.
At end of characteristic
at end of atinn.
read table i_output1 index l_tabix.
sum.
format color 3 intensified on.
write :/1 sy-vline, 2(25) 'Total for Characteristic:'(014),
28(25) i_output1-atnam.
if i_output1-clabs ge 0.
write: 85(18) i_output1-clabs unit i_mchb-meins,
125 sy-vline.
else.
i_output1-clabs = - i_output1-clabs.
write i_output1-clabs unit i_mchb-meins to g_clabs1.
condense g_clabs1.
concatenate '(' g_clabs1 ')' into g_clabs separated by space.
write: 85(18) g_clabs right-justified,
125 sy-vline.
endif.
format color off.
write /1(125) sy-uline.
endat.
endloop.
endform. " display_report
*& Form DISPLAY_BATCH
Display the batch details for the seclected material *
form display_batch.
Get the batch details for the selected material
get cursor field g_cursor.
if g_cursor = c_cursor1 or
g_cursor = c_cursor2 or
g_cursor = c_cursor3 or
g_cursor = c_cursor4 or
g_cursor = c_cursor5 or
g_cursor = c_cursor6.
format color 3.
write: /1 sy-vline,
2(17) 'Material Number :'(020),
20(17) i_output1-matnr,
94 sy-vline.
format color off.
write /1(94) sy-uline.
loop at i_mchb1 where matnr = i_output1-matnr and
atinn = i_output1-atinn and
atflo = i_output1-atflv.
format color col_normal.
shift i_mchb1-charg left deleting leading '0'.
write :/1 sy-vline, 2(16) i_mchb1-lgort centered,
18 sy-vline, 19(17) i_mchb1-charg centered,
36 sy-vline.
if i_output1-atnam cs c_ratio.
write: 37(29) i_mchb1-atflv
exponent 0 decimals 2 centered.
else.
write : 37(29) i_mchb1-atflv
exponent 0 decimals 0 centered.
endif.
write : 66 sy-vline, 67(27) i_mchb1-clabs unit i_mchb-meins,
94 sy-vline.
format color off.
endloop.
write /1(94) sy-uline.
else.
message s899 with 'Invalid cursor position'(016).
exit.
endif.
endform. " DISPLAY_BATCH
*& Form HEADING_SECLIST
Write the Column Headings for Interactive Report
form heading_seclist.
write /1(94) sy-uline.
format color col_heading on.
write :/1 sy-vline, 2(16) 'Storage Location'(021),
18 sy-vline, 19(17) 'Batch Number'(017) centered,
36 sy-vline, 37(29) 'Characteristic Value'(018) centered,
66 sy-vline, 67(27) 'Quantity'(019) centered,
94 sy-vline.
write /1(94) sy-uline.
format color off.
endform. " HEADING_SECLIST
*& Form COLLECT_RATIO
Display the Characteristic ratio data
form collect_ratio.
loop at i_output.
clear g_atinn.
i_output1-atinn = i_output-atinn.
i_output1-atnam = i_output-atnam .
i_output1-werks = i_output-werks.
i_output1-name1 = i_output-name1.
i_output1-matnr = i_output-matnr.
i_output1-maktx = i_output-maktx.
i_output1-clabs = i_output-clabs.
i_output1-meins = i_output-meins.
call function 'CONVERSION_EXIT_ATINN_OUTPUT'
exporting
input = i_output-atinn
importing
output = g_atinn.
if g_atinn cs c_ratio.
If the ratio value is between 13-14.99, display 13
if i_output-atflv between c_13 and c_1499.
i_output1-atflv = c_13.
If the ratio value is between 15-16.99, display 15
elseif i_output-atflv between c_15 and c_1699.
i_output1-atflv = c_15.
If the ratio value is between 17-18.99, display 17
elseif i_output-atflv between c_17 and c_1899.
i_output1-atflv = c_17.
If the ratio value is between 19-20.99, display 19
elseif i_output-atflv between c_19 and c_2099.
i_output1-atflv = c_19.
If the ratio value is between 21-22.99, display 21
elseif i_output-atflv between c_21 and c_2299.
i_output1-atflv = c_21.
If the ratio value is greater than or equal to 23, display 23
elseif i_output-atflv >= c_23.
i_output1-atflv = c_23.
endif.
write i_output1-atflv to i_output1-atflv .
else.
write i_output-atflv to i_output1-atflv exponent 0 decimals 0.
endif.
collect i_output1.
clear i_output1.
endloop.
sort i_output1 by atinn werks matnr atflv.
endform. " COLLECT_RATIO
Reward if useful..
Regards,
Anji
Maybe you are looking for
-
How do I remove credit card information?
On my account?
-
Looking for some help in creating dynamic rdlc report for Desktop Application
Hello , I currently have the syncfusion reportviewer running in my desktop application, now what I am looking to do is create a report where my users, can select and deselect what columns and Items they want to print out. Is there any way to do this
-
Hi Excise values are not flowing in MIRO. partI, part II entries are completed MRP indicator is OK in Excise invoice. in this excise invoice 3 line items are displying(PO have 3 line items) for 1st, 2nd line items are showing the excise values are co
-
Re-Size Each Panel of Accordion Widget Independently
I would like to have varying widths on the panels listed below my Accordion Widget tabs. For example. I have a lot of content in one tab so I need it to expand farther left than other tabs that have less information. Thank you in advance for your hel
-
Trigger Email when BI services Stop
Hi, I have a requirement where in we want to trigger a Mail through Shell script whenever the Oracle BI services are stopped, started or restarted. Our BI servers are hosted on Unix Platforms. Please help on how to implement this. Thanks.