Maintaining the records
Can anybody tell me how to maintain the records after reading them using CRM_ORDER_READ and modifying them? which function module can be used for that?
Hello,
My Answer to the first issue posted :
The FM CRM_ORDER_MAINTAIN updates the buffers only. After this you need to call the FM CRM_ORDER_SAVE to save the changes.
Regarding the second question "why status is not getting updated" ..
Can you check if any errors are returned by the CRM_ORDER_MAINTAIN after you pass the status parameters ?
Thanks,
Vinay
Similar Messages
-
Payment made outside SAP and need to maintain the record in the system.
Hi Experts,
Please help me with this. A payment was made outside the SAP System but, need to be updated in the SAP for record purpose without paying again. Is there is way we can do it?
Thanks in Advance
DipHi Dip,
You can process an off-cycle payment for the staff and do not run the DME process OR perform the complete process and do not send the DME file to the bank.
The other option is to post the payment and use a deduction Wage Type to recover the nett amount.
Regards
Saran -
How to Maintain the Pricing Condition Records in CRM
Hi
I am new to the CRM
How to maintain the pricing condition records in crm for the particular condition type?
as we do in SD(VK11)
ThanksHi Binu,
First of all, you could maintain pricing conditions in the following places:
1. In General Condition Maintenance (GCM)
2. At the product maintenance level
3. At the 'Price agreement' tab of Contracts
4. As manual conditions during order processing at item level
Now, if you want to maintain conditions using GCM, you first have to maintain a condition maintenance group in the customizing where in you can assign condition table and condition type for different counter values. I am assuming that you have done this activity successfully.
When you run the transaction '/SAPCND/GCM', for application 'CRM', your condition maintenance group name and context 'GCM', you will be initially taken to a screen where in you'll have an item area which would be blank and then condition fields would be displayed in a tree on the left.
Here, select the field 'Condition type' and click on icon 'Select records'. You would get a dialog prompting you to enter condition type. Here you can specifiy the condition type for which you want to maintain/view condition records.
If no condition records are available, item area would be left blank. Here, you can choose a condition type using the standard F4 help. Depending on condition types that are assigned to condition maintenance group, different condition types would be displayed in the F4-help using which you can maintain condition records.
Hope this helps.
Regards,
Pavithra
**PS: Please reward points if this helps. -
Maintain condition record on the basis of Forwarding agent
Hi,
How to maintain condition record on the basis of Forwarding agent?
ie. Forwarding agent is not there in field catalogue in condition table.what to add and how to maintain condition record for same?
Reg,
Antaa21Hello,
Is Forwarding Agent created as Vendor in your system? If yes then field LIFNR - Vendor is available in SAP Standard Field Catalogue for Pricing.
You need to use this field (LIFNR)in your Condition Table.
Hope this helps,
Thanks,
Jignesh Mehta -
Maintain the current row position of a table after refresh.
Hi,
I use a poll to refresh tables continuously. when a table is refreshed, the current referring row is reset.
To maintain the current row position after a refresh I use the following poll method.
public void refreshTableT1(PollEvent pollEvent) {
FacesContext fctx = FacesContext.getCurrentInstance();
ValueBinding dcb = fctx.getApplication().createValueBinding("#{bindings}");
DCBindingContainer bindings1 = (DCBindingContainer) dcb.getValue(fctx);
DCIteratorBinding dciter = bindings1.findIteratorBinding("<VOIterator>");
if(dciter!=null){
if(dciter.getCurrentRow()!=null){
Key current_row_key = dciter.getCurrentRow().getKey();
dciter.executeQuery();
if(current_row_key!=null){
try{
dciter.setCurrentRowWithKey(current_row_key.toStringFormat(true));
}catch(Exception ex) {
System.out.println("Exception in current_row_key");
}This works for normal tables well. But when I use it to master-detail tables (pair of tables) it does not.
At the master-detail tables, before the first data fetch, it works well. if we go below the first data fetch, it sets the current row into another position.
how can I overcome this...??
Thanks,
Dinuka.Hi Mr.Frank,
I have an association in two VOs.
for example: There are 2 tables called Emp and Dept. Every Department has Employees. so there is an association (both tables have a common column). Master table is the Dept table. when you click on one record of the Dept table Detail table will show the details of the employees belongs to that selected department. That's what I referred as master-detail tables. first one is master table; second one is detail table.
When the web page loads all the table data is not fetched from the db (it will depend on the fetch size). when we scroll down the table data fetch happens again and again.
think my data fetch size is 25 rows per time.
Suppose we use mine poll method and think I have clicked on the 20 ^th^ row of table1(master table). then the table2 will display details belongs to selected department. that is OK even after refresh. that works well.
when I go to 30 ^th^ row data fetch will happen (my fetch size = 25)
when I click on the 30 ^th^ row of the table1(master table), table2 will display details belongs to selected department. but after the poll method is called the selected row at the table1 disappears and is set to another position. now the 30 ^th^ row is not in the 30 ^th^ position. but it is the selected row and table2 displays correct details.
I think you have got the problem now. :D
Thanks a lot.
Dinuka. -
Where we maintain the cost of characteristics values in variant conf.
Hello guys,
This thread i have posted many times in sdn , but never got the satisfactory answer.This time again i am trying my luck.
Actually i am unable to understand how costing takes place in variant configuration.
Suppose i have created one sales order for configurable material and there we select all the characteristics values which we want.
But we don't maintain the prices of these characteristics values anywhere.So when i create the sales order than how the sales people calculate the cost of that order.
Take a example of computer.For making computer,i want cabinet, processor, Harddisk, Ram, which are available in many sizes.So What we do that we create one configurable material and inside it we maintain all this characteristics and its values.And then i create one sales order for that configurable material and select the suitable characteristics and its values as reqd my customer.
Now my question is how they cost that sales order?As we don't maintain the Accounting and costing view in material master of configurable material.
So where to maintain the prices of these characteristics values?
Plz guide.Hi
You can make the price of a variant dependent on the characteristic values assigned (Pricing).You can use
variant conditions to define surcharges and discounts for a variant
Variant u2013Pricing steps
Create condition record
create a procedure where you enter the reference from the characteristic
Assign the procedures to either the characteristic values
configure the material in the sales order
The net price for the material is displayed
If a value that triggers a variant condition is selected when configuring a material in a sales order, the price of the material displayed under Net value is automatically increased or reduced.
In addition, the Conditions pushbutton is displayed.
On pressing this pushbutton,
One can see which conditions have
influenced the price.
I tried to list you as much detail as possible. Hope that you will be able to resolve your issue
Thanks -
SQL to retrieve the records in subset
Dear Friends,
I have requirement to fetch 5 Million records from Oracle db and display using JAVA and JSP. Each record is 1 KB size.
The database table is online table used to store the transaction details, the rows will keep increasing. I am not allowed to use stored procedures also.
1) Fetching 5 Million record and displaying in 1 attempt is not feasible as JDBC has limitation and also the User has to wait too long to see the data.
I am thinking of processing the records in subset, for example.. Display first 10000 records then if the users wants next 10000 records fetch and display the next 10000 record.
Are there any other best practices to implement the above requirement.
I am not sure how to write the above SQL query? Can anyone please help me write the above SQL query?
I dont this I can use romnum as the rows are increasing.
Below is my Table structure and SQL query which returns 5 Million record
CREATE TABLE MESSAGE_LOG
SOURCE VARCHAR2(25 BYTE),
TARGET VARCHAR2(25 BYTE),
ENGINE VARCHAR2(100 BYTE),
PROCESS VARCHAR2(400 BYTE),
SERVICE VARCHAR2(100 BYTE),
LOGTIMESTAMP TIMESTAMP(6)
SELECT * FROM MESSAGE_LOG WHERE LOGTIMESTAMP BETWEEN TO_DATE('20-MAY-2010 01:00','DD-MON-YYYY HH24:MI') AND TO_DATE('20-MAY-2010 23:00','DD-MON-YYYY HH24:MI')
Thanks in advance,
Bobuser13109986 wrote:
I have requirement to fetch 5 Million records from Oracle db and display using JAVA and JSP. Why no one will look at five million results. And even if they wanted to it would take longer than the average human lifetime.
I am not allowed to use stored procedures also.Why, is there a business requirement that says the application should be as difficult to develop as possible, be unreliable and hard to maintain when things go wrong?
>
1) Fetching 5 Million record and displaying in 1 attempt is not feasible as JDBC has limitation and also the User has to wait too long to see the data.As the user will never read five million results, it doesn't matter
Try this link and come back when you have got to the 5,000,000 result of the 6,730,000 that are estimated to be there
http://www.google.com/#hl=en&q=oracle+procedure
Or you could list every thread in the forum and multiply the time it takes you to get to the last by 50.
I am thinking of processing the records in subset, for example.. Display first 10000 records then if the users wants next 10000 records fetch and display the next 10000 record.Try looking at 10,000 threads on this forum or 10,000 results from Google and see how long that takes.
Are there any other best practices to implement the above requirement.Yes, don't return more information than anyone could possibly find useful -
Hi,
Please suggest me the best way to fetch the record from the table designed below. It is Oracle 10gR2 on Linux
Whenever a client visit the office a record will be created for him. The company policy is to maintain 10 years of data on the transaction table but the table holds record count of 3 Million records per year.
The table has the following key Columns for the Select (sample Table)
Client_Visit
ID Number(12,0) --sequence generated number
EFF_DTE DATE --effective date of the customer (sometimes the client becomes invalid and he will be valid again)
Create_TS Timestamp(6)
Client_ID Number(9,0)
Cascade Flg vahrchar2(1)
On most of the reports the records are fetched by Max(eff_dte) and Max(create_ts) and cascade flag ='Y'.
I have following queries but the both of them are not cost effective and takes 8 minutes to display the records.
Code 1:
SELECT au_subtyp1.au_id_k,
au_subtyp1.pgm_struct_id_k
FROM au_subtyp au_subtyp1
WHERE au_subtyp1.create_ts =
(SELECT MAX (au_subtyp2.create_ts)
FROM au_subtyp au_subtyp2
WHERE au_subtyp2.au_id_k =
au_subtyp1.au_id_k
AND au_subtyp2.create_ts <
TO_DATE ('2013-01-01',
'YYYY-MM-DD'
AND au_subtyp2.eff_dte =
(SELECT MAX
(au_subtyp3.eff_dte
FROM au_subtyp au_subtyp3
WHERE au_subtyp3.au_id_k =
au_subtyp2.au_id_k
AND au_subtyp3.create_ts <
TO_DATE
('2013-01-01',
'YYYY-MM-DD'
AND au_subtyp3.eff_dte < =
TO_DATE
('2012-12-31',
'YYYY-MM-DD'
AND au_subtyp1.exists_flg = 'Y'
Explain Plan
Plan hash value: 2534321861
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 91 | | 33265 (2)| 00:06:40 |
|* 1 | FILTER | | | | | | |
| 2 | HASH GROUP BY | | 1 | 91 | | 33265 (2)| 00:06:40 |
|* 3 | HASH JOIN | | 1404K| 121M| 19M| 33178 (1)| 00:06:39 |
|* 4 | HASH JOIN | | 307K| 16M| 8712K| 23708 (1)| 00:04:45 |
| 5 | VIEW | VW_SQ_1 | 307K| 5104K| | 13493 (1)| 00:02:42 |
| 6 | HASH GROUP BY | | 307K| 13M| 191M| 13493 (1)| 00:02:42 |
|* 7 | INDEX FULL SCAN | AUSU_PK | 2809K| 125M| | 13493 (1)| 00:02:42 |
|* 8 | INDEX FAST FULL SCAN| AUSU_PK | 2809K| 104M| | 2977 (2)| 00:00:36 |
|* 9 | TABLE ACCESS FULL | AU_SUBTYP | 1404K| 46M| | 5336 (2)| 00:01:05 |
Predicate Information (identified by operation id):
1 - filter("AU_SUBTYP1"."CREATE_TS"=MAX("AU_SUBTYP2"."CREATE_TS"))
3 - access("AU_SUBTYP2"."AU_ID_K"="AU_SUBTYP1"."AU_ID_K")
4 - access("AU_SUBTYP2"."EFF_DTE"="VW_COL_1" AND "AU_ID_K"="AU_SUBTYP2"."AU_ID_K")
7 - access("AU_SUBTYP3"."EFF_DTE"<=TO_DATE(' 2012-12-31 00:00:00', 'syyyy-mm-dd
hh24:mi:ss') AND "AU_SUBTYP3"."CREATE_TS"<TIMESTAMP' 2013-01-01 00:00:00')
filter("AU_SUBTYP3"."CREATE_TS"<TIMESTAMP' 2013-01-01 00:00:00' AND
"AU_SUBTYP3"."EFF_DTE"<=TO_DATE(' 2012-12-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))
8 - filter("AU_SUBTYP2"."CREATE_TS"<TIMESTAMP' 2013-01-01 00:00:00')
9 - filter("AU_SUBTYP1"."EXISTS_FLG"='Y')Code 2:
I already raised a thread a week back and Dom suggested the following query, it is cost effective but the performance is same and used the same amount of Temp tablespace
select au_id_k,pgm_struct_id_k from (
SELECT au_id_k
, pgm_struct_id_k
, ROW_NUMBER() OVER (PARTITION BY au_id_k ORDER BY eff_dte DESC, create_ts DESC) rn,
create_ts, eff_dte,exists_flg
FROM au_subtyp
WHERE create_ts < TO_DATE('2013-01-01','YYYY-MM-DD')
AND eff_dte <= TO_DATE('2012-12-31','YYYY-MM-DD')
) d where rn =1 and exists_flg = 'Y'
--Explain Plan
Plan hash value: 4039566059
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 2809K| 168M| | 40034 (1)| 00:08:01 |
|* 1 | VIEW | | 2809K| 168M| | 40034 (1)| 00:08:01 |
|* 2 | WINDOW SORT PUSHED RANK| | 2809K| 133M| 365M| 40034 (1)| 00:08:01 |
|* 3 | TABLE ACCESS FULL | AU_SUBTYP | 2809K| 133M| | 5345 (2)| 00:01:05 |
Predicate Information (identified by operation id):
1 - filter("RN"=1 AND "EXISTS_FLG"='Y')
2 - filter(ROW_NUMBER() OVER ( PARTITION BY "AU_ID_K" ORDER BY
INTERNAL_FUNCTION("EFF_DTE") DESC ,INTERNAL_FUNCTION("CREATE_TS") DESC )<=1)
3 - filter("CREATE_TS"<TIMESTAMP' 2013-01-01 00:00:00' AND "EFF_DTE"<=TO_DATE('
2012-12-31 00:00:00', 'syyyy-mm-dd hh24:mi:ss'))Thanks,
VijayHi Justin,
Thanks for your reply. I am running this on our Test environment as I don't want to run this on Production environment now. The test environment holds 2809605 records (2 Million).
The query output count is 281699 (2 Hundred Thousand) records and the selectivity is 0.099. The Distinct values of create_ts, eff_dte, and exists_flg is 2808905 records. I am sure the index scan is not going to help out much as you said.
The core problem is both queries are using lot of Temp tablespace. When we use this query to join the tables, the other table has the same design as below so the temp tablespace grows bigger.
Both the production and test environment are 3 Node RAC.
First Query...
CPU used by this session 4740
CPU used when call started 4740
Cached Commit SCN referenced 21393
DB time 4745
OS Involuntary context switches 467
OS Page reclaims 64253
OS System time used 26
OS User time used 4562
OS Voluntary context switches 16
SQL*Net roundtrips to/from client 9
bytes received via SQL*Net from client 2487
bytes sent via SQL*Net to client 15830
calls to get snapshot scn: kcmgss 37
consistent gets 52162
consistent gets - examination 2
consistent gets from cache 52162
enqueue releases 19
enqueue requests 19
enqueue waits 1
execute count 2
ges messages sent 1
global enqueue gets sync 19
global enqueue releases 19
index fast full scans (full) 1
index scans kdiixs1 1
no work - consistent read gets 52125
opened cursors cumulative 2
parse count (hard) 1
parse count (total) 2
parse time cpu 1
parse time elapsed 1
physical write IO requests 69
physical write bytes 17522688
physical write total IO requests 69
physical write total bytes 17522688
physical write total multi block requests 69
physical writes 2139
physical writes direct 2139
physical writes direct temporary tablespace 2139
physical writes non checkpoint 2139
recursive calls 19
recursive cpu usage 1
session cursor cache hits 1
session logical reads 52162
sorts (memory) 2
sorts (rows) 760
table scan blocks gotten 23856
table scan rows gotten 2809607
table scans (short tables) 1
user I/O wait time 1
user calls 11
workarea executions - onepass 1
workarea executions - optimal 9
Second Query
CPU used by this session 1197
CPU used when call started 1197
Cached Commit SCN referenced 21393
DB time 1201
OS Involuntary context switches 8684
OS Page reclaims 21769
OS System time used 14
OS User time used 1183
OS Voluntary context switches 50
SQL*Net roundtrips to/from client 9
bytes received via SQL*Net from client 767
bytes sent via SQL*Net to client 15745
calls to get snapshot scn: kcmgss 17
consistent gets 23871
consistent gets from cache 23871
db block gets 16
db block gets from cache 16
enqueue releases 25
enqueue requests 25
enqueue waits 1
execute count 2
free buffer requested 1
ges messages sent 1
global enqueue get time 1
global enqueue gets sync 25
global enqueue releases 25
no work - consistent read gets 23856
opened cursors cumulative 2
parse count (hard) 1
parse count (total) 2
parse time elapsed 1
physical read IO requests 27
physical read bytes 6635520
physical read total IO requests 27
physical read total bytes 6635520
physical read total multi block requests 27
physical reads 810
physical reads direct 810
physical reads direct temporary tablespace 810
physical write IO requests 117
physical write bytes 24584192
physical write total IO requests 117
physical write total bytes 24584192
physical write total multi block requests 117
physical writes 3001
physical writes direct 3001
physical writes direct temporary tablespace 3001
physical writes non checkpoint 3001
recursive calls 25
session cursor cache hits 1
session logical reads 23887
sorts (disk) 1
sorts (memory) 2
sorts (rows) 2810365
table scan blocks gotten 23856
table scan rows gotten 2809607
table scans (short tables) 1
user I/O wait time 2
user calls 11
workarea executions - onepass 1
workarea executions - optimal 5Thanks,
Vijay
Edited by: Vijayaraghavan Krishnan on Nov 28, 2012 11:17 AM
Edited by: Vijayaraghavan Krishnan on Nov 28, 2012 11:19 AM -
How to maintain the vendor details in sap pi ?
HI All,
Here i am working with B2B scenario , can you help me how to maintain the vendor details and client details in parties,'
here i have 49 vendors.
control records are changing according to the vendor s .
Plz help me ......Can u help me how to maintain the link between the pi and ecc for identifiers
Would like to know what your scenario is. Identifier would be required to be maintained in the Party (created in SAP PI) when the scenario is Inbound.
It is actually the Partner Number for the Partner Profile created in we20 of the sAP ECC system. (you may have to store it as KU or LI) in SAP system.
Regards,
Abhishek. -
Java.lang.NullPointerException in the record working time iview
Hello,
I am getting java.lang.NullPointerException when I try to access the record working time iView. Below is the full exception chain.
Please help me out in fixing the issue.
java.lang.NullPointerException
at com.sap.pcuigp.xssutils.pernr.FcEmployeeServicesInterface.getEmployeenumber(FcEmployeeServicesInterface.java:115)
at com.sap.pcuigp.xssutils.pernr.wdp.InternalFcEmployeeServicesInterface.getEmployeenumber(InternalFcEmployeeServicesInterface.java:175)
at com.sap.pcuigp.xssutils.pernr.wdp.InternalFcEmployeeServicesInterface$External.getEmployeenumber(InternalFcEmployeeServicesInterface.java:235)
at com.sap.xss.hr.cat.record.blc.RfcManager.init(RfcManager.java:791)
at com.sap.xss.hr.cat.record.blc.wdp.InternalRfcManager.init(InternalRfcManager.java:248)
at com.sap.xss.hr.cat.record.blc.FcCatRecordInterface.onInit(FcCatRecordInterface.java:344)
at com.sap.xss.hr.cat.record.blc.wdp.InternalFcCatRecordInterface.onInit(InternalFcCatRecordInterface.java:234)
at com.sap.xss.hr.cat.record.blc.wdp.InternalFcCatRecordInterface$External.onInit(InternalFcCatRecordInterface.java:484)
at com.sap.pcuigp.xssfpm.wd.FPMComponent$FPM.attachComponentToUsage(FPMComponent.java:922)
at com.sap.pcuigp.xssfpm.wd.FPMComponent$FPM.attachComponentToUsage(FPMComponent.java:891)
at com.sap.pcuigp.xssfpm.wd.FPMComponent$FPMProxy.attachComponentToUsage(FPMComponent.java:1084)
at com.sap.xss.hr.cat.record.vac.calendar.VcCatCalendar.onInit(VcCatCalendar.java:251)
at com.sap.xss.hr.cat.record.vac.calendar.wdp.InternalVcCatCalendar.onInit(InternalVcCatCalendar.java:194)
at com.sap.xss.hr.cat.record.vac.calendar.VcCatCalendarInterface.onInit(VcCatCalendarInterface.java:162)
at com.sap.xss.hr.cat.record.vac.calendar.wdp.InternalVcCatCalendarInterface.onInit(InternalVcCatCalendarInterface.java:146)
at com.sap.xss.hr.cat.record.vac.calendar.wdp.InternalVcCatCalendarInterface$External.onInit(InternalVcCatCalendarInterface.java:222)
at com.sap.pcuigp.xssfpm.wd.FPMComponent.doProcessEvent(FPMComponent.java:564)
at com.sap.pcuigp.xssfpm.wd.FPMComponent.doEventLoop(FPMComponent.java:438)
at com.sap.pcuigp.xssfpm.wd.FPMComponent.wdDoInit(FPMComponent.java:196)
at com.sap.pcuigp.xssfpm.wd.wdp.InternalFPMComponent.wdDoInit(InternalFPMComponent.java:110)
at com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent.doInit(DelegatingComponent.java:108)
at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)
at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.init(ClientComponent.java:430)
at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:362)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.initApplication(ApplicationSession.java:783)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:303)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingPortal(ClientSession.java:761)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:696)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:253)
at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:192)
at com.sap.tc.webdynpro.clientserver.session.core.ApplicationHandle.doProcessing(ApplicationHandle.java:73)
at com.sap.tc.webdynpro.portal.pb.impl.AbstractApplicationProxy.sendDataAndProcessActionInternal(AbstractApplicationProxy.java:864)
at com.sap.tc.webdynpro.portal.pb.impl.AbstractApplicationProxy.create(AbstractApplicationProxy.java:220)
at com.sap.portal.pb.PageBuilder.updateApplications(PageBuilder.java:1351)
at com.sap.portal.pb.PageBuilder.createPage(PageBuilder.java:356)
at com.sap.portal.pb.PageBuilder.init(PageBuilder.java:550)
at com.sap.portal.pb.PageBuilder.wdDoInit(PageBuilder.java:193)
at com.sap.portal.pb.wdp.InternalPageBuilder.wdDoInit(InternalPageBuilder.java:150)
at com.sap.tc.webdynpro.progmodel.generation.DelegatingComponent.doInit(DelegatingComponent.java:108)
at com.sap.tc.webdynpro.progmodel.controller.Controller.initController(Controller.java:215)
at com.sap.tc.webdynpro.progmodel.controller.Controller.init(Controller.java:200)
at com.sap.tc.webdynpro.clientserver.cal.ClientComponent.init(ClientComponent.java:430)
at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.init(ClientApplication.java:362)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.initApplication(ApplicationSession.java:783)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:303)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:741)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:694)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:253)
at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:192)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:386)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:364)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:1039)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:265)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:175)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:104)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:176)Hi,
All the parameters are maintained in the SU01 but we are in strange situation here only for one test user id we are getting null pointer exception with the time sheet. We compared with the user id which is working there is no difference in the parameters
maintained. Please tell me why this behavior between two user ids.
These two are manager user ids. For employee user ids time sheet is working fine. -
Where we maintain the CST & VAT numbers for a plant which is not a register
Hi All,
Where we maintain the CST & VAT numbers for a plant which is not a registered for Excise?
we are printing it on the invoice output. on debugging it is known that it comes from the table AUSP, after checking the table CABN.
Any body knows about these two tables? let me know the purpose of these tables
thanks in advance,
VenkatMr Big Screams.....
I hope you have neigther read my reply completely nor understood correctly.
Let me tell you, maintaining record in J1ID in Plant address details doesnt declared that plant is registered under Excise act until unless you maintain ECC details. ( ECC -Excise Control Code number which will be alloted by the Central Excise dept).
You will find CST / VAT fields in J1ID which is actually given to maintain Plant address details for INDIA localization.
Hope its clear.
Regards,
Reazuddin MD -
How to check the records in Master Data Table?
Hi,
I am trying to load the Master Data Table using the Flat File.Now how to check the records in Master Data Table?
I done the following way:
Info Provider->Info Object->Right Click->Display Data or Maintain Master Data
But it's not showing the records.It's asking like CID from......To......
CID(SID)from.............To.......
here CID means customer id(characteristic).
and showing some settings.
Please guide me.
Thanks & RegardsHi Sri,
Go to T- code RSD1 and type your info object name and open the P- table in the infoobject then select execute symbol to see the updated data in to master data info object.
regards
sap -
How to maintain the column heading in two lines
for example i have field ACCOUNTING CLEARK
i want to display this description in alv list
like ACC
clk
Please send the solution for this.
very urgent
thanks in advance
regards
venuhi
please check my code
for field KNB1-BUSAB
i want the description ACC in place of ACC CLK
CLK
means in two lines
report zfir0098 message-id zz
line-size 255
line-count 65
no standard page heading.
(C) Copyright <2006> by Eastman Kodak Company - All Rights Reserved.
Report Name : ZFIR0098
Author : Venugopalreddy.K
Created on : 12-MAY-2006
SIR# : 086279
Interface ID# : RO-01509 - Open AR Aging by Due Date
Correction# : D11K947333
Transaction code: Z_ZFIR0098
Logical Database: N/A
SAPScript name : N/A
Application Area: FI
Programs Called : N/A
Function Modules: REUSE_ALV_VARIANT_F4
REUSE_ALV_VARIANT_DEFAULT_GET
REUSE_ALV_EVENTS_GET
REUSE_ALV_LIST_DISPLAY
REUSE_ALV_EVENTS_GET
REUSE_ALV_COMMENTARY_WRITE
Description : Report to display Open AR with Aging by due
date. The open items are displayed by Linked
Accounts, Customer Account, Business unit and
Posting Date.
Correction# SIR# Modified By Date
D11Kxxxxxx xxxxxx xxxx MM/DD/YYYY
Description of change (copy from SIR):
(text)................................................................
TABLE DEFINITION *
tables : t001, "Company Codes
knvv, "Customer Master Sales Data
bsid, "Accounting: Secondary Index for Customers
knkk, "Customer master credit management: Control area data
kna1, "General Data in Customer Master
knb1, "Customer Master (Company Code)
t052, "Terms of Payment
tvv1. "Customer Group 1
TYPE POOLS *
type-pools: slis.
INTERNAL TABLE DECLARATION
Internal table for Customer Master (Company Code)
data : begin of i_knb1 occurs 0,
kunnr type knb1-kunnr,
bukrs type knb1-bukrs,
busab type knb1-busab,
end of i_knb1.
Internal table for Customer Master Sales Data
data : begin of i_knvv occurs 0,
kunnr type knvv-kunnr,
vkorg type knvv-vkorg,
kvgr1 type knvv-kvgr1,
zterm type knvv-zterm,
end of i_knvv.
Internal table for linked account nos.
data : begin of i_knkk occurs 0,
kunnr type knkk-kunnr,
kkber type knkk-kkber,
klimk type knkk-klimk,
knkli type knkk-knkli,
sbgrp type knkk-sbgrp,
grupp type knkk-grupp,
kdgrp type knkk-kdgrp,
end of i_knkk.
Internal table for Customer's credit limit
data : begin of i_knkk_knkli occurs 0,
kunnr type knkk-kunnr,
klimk type knkk-klimk,
knkli type knkk-knkli,
end of i_knkk_knkli.
Internal table for T001 records
data: begin of i_t001 occurs 0,
bukrs type t001-bukrs,
waers type t001-waers,
end of i_t001.
Internal table for BSID records
data : begin of i_bsid occurs 0,
bukrs type bsid-bukrs,
kunnr type bsid-kunnr,
zuonr type bsid-zuonr,
belnr type bsid-belnr,
budat type bsid-budat,
bldat type bsid-bldat,
waers type bsid-waers,
shkzg type bsid-shkzg,
dmbtr type bsid-dmbtr,
wrbtr type bsid-wrbtr,
zfbdt type bsid-zfbdt,
zterm type bsid-zterm,
zbd1t type bsid-zbd1t,
zbd2t type bsid-zbd2t,
zbd3t type bsid-zbd3t,
kkber type bsid-kkber,
end of i_bsid.
Internal table for Customer Master
data : begin of i_kna1 occurs 0,
kunnr type kna1-kunnr,
name1 type kna1-name1,
end of i_kna1.
Internal table for Terms of Payment
data : begin of i_t052 occurs 0,
zterm type t052-zterm,
ztagg type t052-ztagg,
ztag1 type t052-ztag1,
ztag2 type t052-ztag2,
ztag3 type t052-ztag3,
end of i_t052.
Internal table for final output
data : begin of i_output occurs 0,
kunnr1 type bsid-kunnr,
kunnr type bsid-kunnr,
bukrs type t001-bukrs,
kdgrp type knkk-kdgrp,
name1 type kna1-name1,
kvgr1 type knvv-kvgr1,
knkli type knkk-knkli,
klimk type knkk-klimk,
sbgrp type knkk-sbgrp,
zuonr type bsid-zuonr,
bldat type bsid-bldat,
due_date type bsid-zfbdt,
not_due type bsid-dmbtr,
curr_due type bsid-dmbtr,
due_01_30 type bsid-dmbtr,
due_31_60 type bsid-dmbtr,
due_61_90 type bsid-dmbtr,
due_91_180 type bsid-dmbtr,
due_181_365 type bsid-dmbtr,
due_gt_365 type bsid-dmbtr,
spcol type bsid-dmbtr,
tot_due type bsid-dmbtr,
tot_ar type bsid-dmbtr,
waers type t001-waers,
zterm type bsid-zterm,
zterm1 type knvv-zterm,
v_no_days type i,
busab type knb1-busab,
end of i_output.
Internal table for summary data
data : begin of i_output_summary occurs 0,
bukrs type t001-bukrs,
kunnr type bsid-kunnr,
name1 type kna1-name1,
kvgr1 type knvv-kvgr1,
klimk type knkk-klimk,
zterm type knvv-zterm,
kdgrp type knkk-kdgrp,
sbgrp type knkk-sbgrp,
busab type knb1-busab,
not_due type bsid-dmbtr,
curr_due type bsid-dmbtr,
due_01_30 type bsid-dmbtr,
due_31_60 type bsid-dmbtr,
due_61_90 type bsid-dmbtr,
due_91_180 type bsid-dmbtr,
due_181_365 type bsid-dmbtr,
due_gt_365 type bsid-dmbtr,
spcol type bsid-dmbtr,
tot_due type bsid-dmbtr,
tot_ar type bsid-dmbtr,
waers type t001-waers,
end of i_output_summary.
Temporary internal table for KNVV records.
data : i_knvv_tmp like i_knvv occurs 0 with header line.
Temporary internal table for KNKK records.
data : i_knkk_tmp like i_knkk occurs 0 with header line.
Temporary internal table for BSID records.
data : i_bsid_tmp like i_bsid occurs 0 with header line.
FIELD STRING DECLARATION
Structure to validate selection screen
data : begin of v_radio,
rd1 type c,
rd2 type c,
rd3 type c,
end of v_radio.
Structure to validate selection screen
data : begin of v_radio1,
rd1 type c,
rd2 type c,
rd3 type c,
end of v_radio1.
Internal Tables for ALV Report
data: i_fieldcat_alv type slis_t_fieldcat_alv,
i_sort type slis_t_sortinfo_alv,
i_sort1 type slis_t_sortinfo_alv,
i_events type slis_t_event,
v_events type slis_alv_event,
v_fieldcat_alv type slis_fieldcat_alv,
v_sort like line of i_sort,
v_sort1 like line of i_sort1,
v_layout type slis_layout_alv,
v_print type slis_print_alv,
i_list_comments type slis_t_listheader,
v_list_comments like line of i_list_comments,
v_variant like disvariant, "Layout-External Use
v_variant_save type c, "To Store the Varient
v_variant1 like disvariant,
v_exit type c. "Event exit
Data declaration
data: v_paym_days type i,
v_date_diff type i,
v_zterm type t052-zterm,
v_bukrs1 like bsid-bukrs,
v_kunnr like bsid-kunnr,
v_kdgrp like knkk-kdgrp,
v_bukrs like bsid-bukrs,
v_name1 like kna1-name1,
v_knkli like knkk-knkli,
v_klimk(20) type c,
v_kvgr1 like knvv-kvgr1,
v_kkber like knkk-kkber,
v_sbgrp like knkk-sbgrp,
v_busab like knb1-busab.
data: v_cust_not_due type bsid-dmbtr,
v_cust_curr_due type bsid-dmbtr,
v_cust_due_01_30 type bsid-dmbtr,
v_cust_due_31_60 type bsid-dmbtr,
v_cust_due_61_90 type bsid-dmbtr,
v_cust_due_91_180 type bsid-dmbtr,
v_cust_due_181_365 type bsid-dmbtr,
v_cust_due_gt_365 type bsid-dmbtr,
v_cust_spcol type bsid-dmbtr,
v_cust_tot_due type bsid-dmbtr,
v_cust_tot_ar type bsid-dmbtr,
v_curr type t001-waers,
v_name type kna1-name1,
v_kvgr type knvv-kvgr1,
v_kdgrp1 type knkk-kdgrp,
v_klimk1 type knkk-klimk,
v_zterm1 type knvv-zterm,
v_sbgrp1 type knkk-sbgrp,
v_busab1 type knb1-busab.
data: v_repid like sy-repid,
v_flag type c.
CONSTANT DEFINITION
constants:
c_sel_x(1) type c value 'X',
c_0(1) type c value '0',
c_1(1) type c value '1',
c_knkli(7) type c value 'S_KNKLI',
c_kdgrp(7) type c value 'S_KDGRP',
c_debit_s(1) type c value 'S',
c_credit_h(1) type c value 'H',
c_deflt_zterm_y000(4) type c value 'Y000',
c_sc01(4) type c value 'SC01',
c_subtotal_text type slis_formname value
'ALV_SUBTOTALS',
c_formname_top_of_page type slis_formname value
'F_TOP_OF_PAGE',
c_formname_top_of_page_summ type slis_formname value
'F_TOP_OF_PAGE_SUMM'.
Selection-screen
selection-screen begin of block b1 with frame title text-s01.
parameters : p_bukrs type t001-bukrs obligatory.
select-options : s_kvgr1 for knvv-kvgr1,
s_sbgrp for knkk-sbgrp,
s_busab for knb1-busab,
s_budat for bsid-budat,
s_kunnr for knvv-kunnr.
selection-screen end of block b1.
selection-screen begin of block b2 with frame title text-s02.
selection-screen begin of line.
parameters : p_lk_on as checkbox.
selection-screen comment 5(24) text-s10 for field p_lk_on.
selection-screen end of line.
selection-screen comment 02(67) text-s12.
selection-screen skip 1.
selection-screen begin of line.
parameters :p_knkli radiobutton group g1 user-command radi
default 'X'.
selection-screen comment 5(24) text-s05 for field p_knkli.
select-options :s_knkli for knkk-knkli.
selection-screen end of line.
selection-screen begin of line.
parameters :p_kdgrp radiobutton group g1.
selection-screen comment 5(24) text-s06 for field p_kdgrp.
select-options :s_kdgrp for knkk-kdgrp.
selection-screen end of line.
selection-screen begin of line.
parameters :p_all_lk radiobutton group g1.
selection-screen comment 5(24) text-s07 for field p_all_lk.
selection-screen end of line.
selection-screen end of block b2.
selection-screen begin of block b3 with frame title text-s03.
selection-screen begin of line.
parameters :p_op_ab radiobutton group g2.
selection-screen comment 5(32) text-s08 for field p_op_ab.
selection-screen end of line.
selection-screen begin of line.
parameters :p_ab radiobutton group g2.
selection-screen comment 5(16) text-s09 for field p_ab.
selection-screen end of line.
selection-screen end of block b3.
selection-screen begin of block b4 with frame title text-s11.
parameters :p_vari like disvariant-variant.
selection-screen end of block b4.
INITIALIZATION
initialization.
To initialize the variant
perform initialize_variant.
To fetch the default variant for the ALV report
perform display_default_variant.
At selection-screen
at selection-screen.
To validate company code
perform check_company_code.
To validate business unit
perform check_business_unit.
move: p_knkli to v_radio1-rd1,
p_kdgrp to v_radio1-rd2,
p_all_lk to v_radio1-rd3.
if not s_kvgr1[] is initial and
not s_sbgrp[] is initial.
message e045 with text-073.
endif.
at selection-screen output.
move: p_knkli to v_radio-rd1,
p_kdgrp to v_radio-rd2,
p_all_lk to v_radio-rd3.
To maintain the select options visiable and invisible
perform selection_screen_output.
Check the radio buttons selected in selection screen
if v_radio1 eq v_radio.
To maintain the default settings
perform selection_screen_check.
endif.
AT SELECTION-SCREEN ON VALUE-REQUEST
At Selection Screen Value Request.
at selection-screen on value-request for p_vari.
To Display the Existing Variants(Layout).
perform variant_help_f4 using p_vari.
Event start-of-selection
start-of-selection.
Get the cusomer number
perform get_knb1_details.
Get the customer group details
perform get_knvv_details.
Get all linked account and credit account details from KNKK
perform get_linked_accounts_details.
Get open AR documents from BSID
perform get_open_ar_details.
Get the company code and curreny.
perform get_com_code_curr.
Get the customer name
perform get_customer_name.
Get the payment term days
perform get_payment_term_days.
Populate the final table having all the field details
perform populate_final_table.
To display the output in alv list.
perform alv_list_dispaly.
Form initialize_variant
To initialize the ALV Variant
form initialize_variant.
clear: v_variant.
v_repid = sy-repid.
v_variant-report = v_repid.
v_variant-username = sy-uname.
v_variant_save = 'A'.
endform. " initialize_variant
Form display_default_variant
To fetch the Default ALV variant
form display_default_variant.
if not p_vari is initial.
v_variant-variant = p_vari.
endif.
clear v_variant1.
v_variant1 = v_variant.
The function module is used to fetch the default variant
call function 'REUSE_ALV_VARIANT_DEFAULT_GET'
exporting
i_save = v_variant_save
changing
cs_variant = v_variant1
exceptions
wrong_input = 1
not_found = 2
program_error = 3
others = 4.
Based on the SUBRC value the variant is assigned
case sy-subrc.
when 0.
p_vari = v_variant1-variant.
when 2.
clear p_vari.
endcase.
endform. " display_default_variant
Form check_company_code
Validate Company Code
form check_company_code.
select single *
from t001
where bukrs eq p_bukrs.
if sy-subrc ne 0.
message e339.
endif.
endform. " check_company_code
Form check_business_unit
Validate Business Unit
form check_business_unit.
select single *
from tvv1
where kvgr1 in s_kvgr1.
if sy-subrc ne 0.
message e045 with text-e01.
endif.
endform. " check_business_unit
Form selection-screen-output
On selection of corresponding radio button the respective
Select-option will be high lighted
form selection_screen_output.
loop at screen.
if p_knkli = c_sel_x.
Credit Account invisible
if screen-name cs c_knkli.
screen-invisible = c_0.
screen-active = c_1.
modify screen.
endif .
Customer Group visible
if screen-name cs c_kdgrp.
screen-invisible = c_1.
screen-active = c_0.
modify screen.
endif.
elseif p_kdgrp = c_sel_x.
Credit Account invisible
if screen-name cs c_knkli.
screen-invisible = c_1.
screen-active = c_0.
modify screen.
endif .
Customer Group visible
if screen-name cs c_kdgrp.
screen-invisible = c_0.
screen-active = c_1.
modify screen.
endif.
elseif p_all_lk = c_sel_x.
Credit Account invisible
if screen-name cs c_knkli.
screen-invisible = c_1.
screen-active = c_0.
modify screen.
endif .
Customer Group invisible
if screen-name cs c_kdgrp.
screen-invisible = c_1.
screen-active = c_0.
modify screen.
endif.
endif.
endloop.
endform. " selection_screen_output
Form selection_screen_check
To check the selection screen radio buttons
form selection_screen_check.
if p_knkli = c_sel_x.
if p_op_ab is initial.
p_op_ab = c_sel_x.
p_ab = ''.
endif.
elseif p_kdgrp = c_sel_x.
if p_op_ab is initial.
p_op_ab = c_sel_x.
p_ab = ''.
endif.
elseif p_all_lk = c_sel_x.
if p_op_ab is initial.
p_op_ab = c_sel_x.
p_ab = ''.
endif.
endif.
endform. " selection_screen_check
Form variant_help_f4
To get the list of ALV help variants
form variant_help_f4 using p_variant.
call function 'REUSE_ALV_VARIANT_F4'
exporting
is_variant = v_variant
i_save = v_variant_save
importing
e_exit = v_exit
es_variant = v_variant
exceptions
not_found = 1
program_error = 2
others = 3.
if sy-subrc <> 0.
If no variants exist
message s045 with text-e02.
endif.
if v_exit is initial.
p_variant = v_variant-variant.
endif.
endform. " variant_help_f4
Form get_knb1_details
To get the Customer number
form get_knb1_details.
Fetch data from Customer Master (Company Code)
based on selection criteria(company code)
select kunnr bukrs busab
from knb1
into table i_knb1
where bukrs eq p_bukrs.
if sy-subrc ne 0.
message i561.
leave list-processing.
endif.
endform. " get_knb1_details
Form get_knvv_details
To get the Customer group details
form get_knvv_details.
if not i_knb1[] is initial.
sort i_knb1 by kunnr bukrs.
delete adjacent duplicates from i_knb1 comparing kunnr bukrs.
Fecth data from Customer Master Sales Data
based on internal table I_KNB1 and selection criteria
(customer group)
select kunnr vkorg kvgr1 zterm
from knvv
into table i_knvv
for all entries in i_knb1
where kunnr eq i_knb1-kunnr
and kunnr in s_kunnr
and vkorg eq i_knb1-bukrs.
if sy-subrc ne 0.
message i561.
leave list-processing.
endif.
endif.
endform. " get_knvv_details
Form get_linked_accounts_details
To get the linked account details
form get_linked_accounts_details.
if not i_knvv[] is initial.
get unique customer account KUNNR from i_bsid.
i_knvv_tmp[] = i_knvv[].
sort i_knvv_tmp by kunnr.
delete adjacent duplicates from i_knvv_tmp comparing kunnr.
clear v_kkber.
concatenate 'C' p_bukrs+1(3) into v_kkber.
sort i_knvv_tmp by kunnr.
Fetch the Customer's account number and Customer Group
details form Customer master credit management based on
internal table i_bsid_tmp and Credit control area
select kunnr kkber klimk knkli sbgrp grupp kdgrp
from knkk
into table i_knkk
for all entries in i_knvv_tmp
where kunnr eq i_knvv_tmp-kunnr
and kkber eq v_kkber.
if not i_knkk[] is initial.
i_knkk_tmp[] = i_knkk[].
if p_lk_on = 'X' or not s_knkli[] is initial
or not s_kdgrp[] is initial.
loop at i_knkk_tmp.
loop at i_knkk where knkli eq i_knkk_tmp-knkli
and kunnr ne i_knkk_tmp-knkli.
exit.
endloop.
if sy-subrc ne 0.
delete i_knkk where knkli eq i_knkk_tmp-knkli.
endif.
endloop.
endif.
if not s_knkli[] is initial.
delete i_knkk where not knkli in s_knkli.
endif.
if not s_kdgrp[] is initial.
delete i_knkk where not kdgrp in s_kdgrp.
endif.
if not s_sbgrp[] is initial.
delete i_knkk where not sbgrp in s_sbgrp.
endif.
else.
message i561.
leave list-processing.
endif.
else.
message i561.
leave list-processing.
endif.
endform. " get_linked_accounts_details
Form get_com_code_curr
Get the company code and currency
form get_com_code_curr .
select bukrs waers
from t001
into table i_t001
where bukrs eq p_bukrs.
endform. " get_com_code_curr
Form get_open_ar_details
Read BSID for all open AR
form get_open_ar_details.
if not i_knkk[] is initial.
refresh i_knkk_tmp.
i_knkk_tmp[] = i_knkk[].
sort i_knkk_tmp by knkli.
delete adjacent duplicates from i_knkk_tmp comparing kunnr.
Fetch the from Accounting: Secondary Index for Customers
based on internal table i_knvv and selection criteria(Posting Date
-in the Document)
select bukrs kunnr zuonr belnr budat bldat waers shkzg
dmbtr wrbtr zfbdt zterm zbd1t zbd2t zbd3t kkber
from bsid
into table i_bsid
for all entries in i_knkk_tmp
where bukrs eq p_bukrs
and kunnr eq i_knkk_tmp-kunnr
and umskz eq space
and bstat eq space
and budat in s_budat.
if i_bsid[] is initial.
message i561.
leave list-processing.
endif.
else.
message i561.
leave list-processing.
endif.
endform. " get_open_ar_details
Form get_customer_name
To get the customer name
form get_customer_name.
if not i_knvv_tmp[] is initial.
Get the customer name from KNA1 for all customer
select kunnr name1
from kna1
into table i_kna1
for all entries in i_knvv_tmp
where kunnr = i_knvv_tmp-kunnr.
endif.
endform. " get_customer_name
Form get_payment_term_days
To get the payment days
form get_payment_term_days.
if not i_bsid[] is initial.
clear i_bsid_tmp.
refresh i_bsid_tmp.
i_bsid_tmp[] = i_bsid[].
sort i_bsid_tmp by zterm.
delete i_bsid_tmp where shkzg ne c_debit_s.
if not i_bsid_tmp[] is initial.
Get the Payment days from T052
select zterm ztagg ztag1 ztag2 ztag3
from t052
into table i_t052
for all entries in i_bsid
where zterm = i_bsid-zterm.
endif.
endif.
endform. " get_payment_term_days
Form populate_final_table
To polupate final internal table
form populate_final_table.
sort i_bsid.
sort i_kna1 by kunnr.
sort i_knkk by kunnr.
sort i_knkk_knkli by kunnr.
sort i_knvv by vkorg kunnr.
sort i_t052 by zterm ztag1 ztag2 ztag3.
sort i_t001 by bukrs.
loop at i_bsid.
clear i_knb1.
read table i_knb1 with key kunnr = i_bsid-kunnr
binary search.
if not i_knb1-busab in s_busab.
continue.
else.
i_output-busab = i_knb1-busab.
endif.
clear i_knvv.
read table i_knvv with key kunnr = i_bsid-kunnr
vkorg = i_bsid-bukrs
binary search.
if not i_knvv-kvgr1 in s_kvgr1.
continue.
else.
i_output-kvgr1 = i_knvv-kvgr1.
i_output-zterm1 = i_knvv-zterm.
endif.
To read the data from kna1,knkk and knvv and moving data to final
internal table i_output.
perform move_kna1_knkk_knvv.
To read the data from bsid and t052 and moving data to final
internal table i_output.
perform move_bsid_t052.
To calculate the number of days.
perform move_no_of_days.
endloop.
endform. " populate_final_table
Form move_kna1_knkk_knvv
To read the data fron kna1,knkk and knvv
form move_kna1_knkk_knvv.
clear i_kna1.
read table i_kna1 with key kunnr = i_bsid-kunnr
binary search.
if sy-subrc eq 0.
i_output-name1 = i_kna1-name1.
endif.
clear i_knkk.
read table i_knkk with key kunnr = i_bsid-kunnr
binary search.
if sy-subrc eq 0.
i_output-knkli = i_knkk-knkli.
i_output-kdgrp = i_knkk-kdgrp.
i_output-klimk = i_knkk-klimk.
i_output-sbgrp = i_knkk-sbgrp.
endif.
endform. " move_kna1_knkk_knvv
Form move_bsid_t052
To read the data from BSID and T052
form move_bsid_t052.
move: i_bsid-kunnr to i_output-kunnr,
i_bsid-zuonr to i_output-zuonr ,
i_bsid-zterm to i_output-zterm,
i_bsid-bldat to i_output-bldat,
i_bsid-kunnr to i_output-kunnr1.
read table i_t001 with key bukrs = i_bsid-bukrs
binary search.
if sy-subrc eq 0.
move: i_t001-bukrs to i_output-bukrs,
i_t001-waers to i_output-waers.
endif.
if i_bsid-shkzg eq c_credit_h.
i_bsid-dmbtr = - i_bsid-dmbtr.
endif.
move i_bsid-dmbtr to i_output-tot_ar.
If base line date is initial, then use Document date.
if i_bsid-zfbdt is initial.
i_bsid-zfbdt = i_bsid-bldat.
endif.
if i_bsid-shkzg eq c_debit_s.
clear v_paym_days.
if not i_bsid-zbd3t is initial.
v_paym_days = i_bsid-zbd3t.
elseif not i_bsid-zbd2t is initial.
v_paym_days = i_bsid-zbd2t.
elseif not i_bsid-zbd1t is initial.
v_paym_days = i_bsid-zbd1t.
if no discount days is existing in BSID the
take discount days from table T052
else.
clear : i_t052,
v_zterm.
if i_bsid-zterm is initial.
v_zterm = c_deflt_zterm_y000.
else.
v_zterm = i_bsid-zterm.
endif.
read table i_t052 with key zterm = v_zterm
binary search.
if sy-subrc eq 0.
if not i_t052-ztag3 is initial.
v_paym_days = i_t052-ztag3.
elseif not i_t052-ztag2 is initial.
v_paym_days = i_t052-ztag2.
elseif not i_t052-ztag1 is initial.
v_paym_days = i_t052-ztag1.
endif.
endif.
endif.
i_output-due_date = i_bsid-zfbdt + v_paym_days.
else.
i_output-due_date = i_bsid-zfbdt.
endif.
clear v_date_diff.
v_date_diff = sy-datum - i_output-due_date.
i_output-v_no_days = v_date_diff.
endform. " move_bsid_t052
Form move_no_of_days
To read the no of days
form move_no_of_days.
if i_knkk-grupp = c_sc01.
i_output-spcol = i_bsid-dmbtr.
else.
if v_date_diff < 0.
i_output-not_due = i_bsid-dmbtr.
elseif v_date_diff = 0.
i_output-curr_due = i_bsid-dmbtr.
elseif v_date_diff <= 30.
-
Not able to edit the records in the table
Hi Experts,
I am not able to edit the records or delete the records from a database table.
Those fields are not enabled.
Edit icon is not at all there.
Wat can i do.
Cheers,
KarthickHi,
In SM30, u can edit or delete records from a table.Before goin to this u need to create table maintainance generator for this table.
regards
lakshmi -
How to maintain the data in the view cluster
we are doing upgrade, we have one view cluster app_log in this object scwb
and subobjects is swtlo1,02,03 like i have some subobjects in 4.6c we transported the view cluster to ecc6.0 in ecc 6.0 i have object scwb but subobjects doesn't exist how to maintain the subobjects in view cluster.Definition
A view cluster is a group of maintenance dialogs which are collected in one maintenance unit for business or technical reasons. They allow related data in more than one table/view to be maintained consistently.
Use
Whereas only 1:1 relationships can be processed in maintenance views (except for language-dependent texts), key extensions and relationships of cardinality N:M can also be handled in view clusters. Maintenance dialogs with no key, or partial key-dependence, can also be combined into view clusters.
Grouping dialogs into one maintenance unit has the following advantages for data maintenance:
Navigation: A view cluster contains convenient standard navigation between the individual maintenance dialogs. This simplifies the maintenance of the data in a view cluster.
Consistency: The view cluster ensures data consistency when deleting, copying, saving, retrieving and manually transporting data. For example when an entry in a higher-level view is deleted, , it automatically ensures that all dependent entries in lower-level views are also deleted.
You can first split tables with a lot of fields into various views and then collect them into a view cluster.
Use tabs to format very wide tables with a lot of fields.
Structure
Navigation in a view cluster is usually based on the hierarchy of the tables/views on which the dialogs are based. A view cluster usually consists of one or more root dialogs and the at most 14 maintenance dialogs which depend on them. A view at a lower level has one or more additional fields in its key compared its higher-level view. Each data record at the higher level has several dependent data records below it.
Each maintenance dialog is an independent unit consisting of an overview screen or an overview and a detail screen, depending on the dialog type. As well as the data to be maintained, the overview screen contains a navigation area, in which you can go to higher or lower level maintenance dialogs.
One-level maintenance dialogs only contain one screen, the list screen, in which all existing data records are displayed in a table. In a two-level maintenance dialog, double-clicking on a data record in the list screen takes you to the detail screen, which displays all the fields in the selected data record.
Generate a maintenance dialog for each view before you call the cluster maintenance (SM34). When you generate the maintenance dialog, flag the key fields which are identical in the view and its higher-level in the cluster, with the maintenance attribute S. The system fills the key fields when you go from the upper to the lower level, with the values of the data record selected in the upper level. Go to the transaction SE54 to define a view cluster.
<b>Rewards point if useful.......</b>
regards....
Abhaysingh.
Maybe you are looking for
-
WRT54GL broadcast keeps cycling on and off
I've had a WRT54GL ( for about a week now ) with no real issues. Today my wife mentioned that the net's been flaky ( wireless nto hard wired ). I originally noticed what seemed like minutes for my desktop of laptop to connect to any web pages. L
-
Hi All, While trying to archive the FI Documents present in our system, a huge percentage of them are not getting archived inspite of meeting the retention/residence time requirements. The spool says these docs have open line items. My query is: how
-
Using Map and List, simple
Hi, My prolem is very simple, but i'm beggining with java. I have 10 key-values: "CUSTOMER_ID" , the others are not important What is important is that I want to have different values under the same key CUSTOMER_ID The structure should be like this:
-
Trying to download OS X Lion- it now say it is paused
I have been having so much trouble downlading OS X Lion. I am very disappointed with MAC. I bought a new macbook pro. It was supposed to be a simple free download of OS X lion. Now it has been my nightmare. I ended up loosing patiente and turned off
-
Lenovo Solution Center 2.2.002 Issue In G580 Laptop
Hi: After Updating Lenovo solution centre to 2.2.002 in my Laptop G580, In System information: Product, Bios,Serial Number is not displaying and when i want to do Lenovo software update Last Update : Not available and in Status coloum it showing