Objectdatasource / Table Adapter Command Time Out
Hello. I am not sure if this is posted in exactly the right place.... Here is the background:
---Visual Studio 2013
---ASPX with ReportViewer Control included on page.
---ReportViewer Control is pulling from a ObjectDataSource
---Report (.rdlc file) is referencing back to a Dataset (.xsd file)
---Dataset (.xsd file) includes the Table Adapter.
---Page Language="VB"
---ASPX File is named Default.aspx
---CodeFile="Default.aspx.vb"
ObjectDataSources and SQLDataSources both have a default timeout of 30 Seconds. That is ok for most small select statements. However, for something a little larger - it could go over. I know how to override a SQLDataSource CommandTimeout. Something like this:
Protected Sub SqlDataSource1_WhatType_Selecting(sender As Object, e As SqlDataSourceSelectingEventArgs) Handles SqlDataSource1_WhatType.Selecting
e.Command.CommandTimeout = ######
End Sub
However, for a objectdatasource I am stumped. From the hours of research I have done - it seems to be tied back to the dataset or even the table adapter -- needs to be set there.
Anyways, I am starting over with this to see if anyone here has run in to this? Things to try?
Thank you!!
Hi there,
Your post is thorough, but it is misplaced. =P I can't move it for you, so please repost at
http://forums.asp.net
But before you do, check out this article:
http://blog.csharpner.com/2008/05/setting-timeout-on-typed-dataset.html
It looks like this is the general solution given
this search.
Most of the examples appear to be in C#, but the principle would be the same in VB; create your own partial class for the adapter and then expose the timeout property on each command.
Reed Kimble - "When you do things right, people won't be sure you've done anything at all"
Similar Messages
-
SOAP Adapter: Connection time out error
Hi Guys,
I do it one scenario for Proxy to webservice Asynchronous . I have send the input details through Proxy. In Sxmb_Moni shows success message. But Receiver side doesn't reach the payload. Because receiver side (Soap Adapter) shows connection time out error. But i have given correct URL and SOAP Action in receiver communication channel. Please give some suggestions to solve that issues. Please don't refer links.
Thanks & Regards
Vijayhi
this is a time out error
increase the timeout value by specifying the parameter
XI.Timeout in the module parameter of soap Adapter
OR
1. This is because of TimeOut. The default timeout value for synchronous calls is 5
minutes. You can increase this value by setting parameter XI.Timeout in the module parameter table of
the SOAP adapter. The value must be given in milliseconds. For example, value 600000
represents the timeout value of 10 minutes. This parameter is not recognized in systems prior to SP13.
2.The Other Options is send the queue id with your request message.
http://host:port/XISOAPAdapter/MessageServlet?channel=p:s:c
&version=3.0&...&QueueId=xxxxxxxxxxxxxxxx
where xxxxxxxxxxxxxxxx is an ABAP queue ID.
3.Check your RWB message monitoring.
Is there any system failure message and holding message be there.
If then clear the messages.
4. Increase the time out parameter for HTTP in your altova xml spy.Defaultly it will be very low. -
Hi
I have read that a polling files from an FTP server windows but I had some problems because the polling ejecutarce to mark the following error log
<2009-06-01 20:44:52,822> <INFO> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Managed Connection Created
<2009-06-01 20:44:52,822> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Adding Event Listener
<2009-06-01 20:44:52,822> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Creating Connection
<2009-06-01 20:44:52,822> <INFO> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Connection Created
<2009-06-01 20:44:52,822> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Connection manager allocated connection :oracle.tip.adapter.ftp.FTPConnection@1e2d982
<2009-06-01 20:44:52,822> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Host name is 'MyHost'.
<2009-06-01 20:44:52,822> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Reading reply from MyHost
<2009-06-01 20:44:52,822> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Host MyHost FTP command: USER cajero
<2009-06-01 20:44:52,822> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Command: USER, reply:
331 Password required for cajero.
<2009-06-01 20:44:52,822> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Host MyHostFTP command: PASS
<2009-06-01 20:44:52,822> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Command: PASS, reply:
230 User cajerologged in.
<2009-06-01 20:44:52,822> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Host MyHost FTP command: PASV
<2009-06-01 20:44:52,822> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Command: PASV, reply:
227 Entering Passive Mode (192,168,0,150,15,190).
<2009-06-01 20:44:52,822> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Passive: ip = 192.192.0.192, port = 4030
<2009-06-01 20:44:52,822> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Connecting to MyHost:4030
<2009-06-01 20:44:52,838> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Host MyHost FTP command: NLST C:\pub\cashier
<2009-06-01 20:44:52,838> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Command: NLST, reply:
125 Data connection already open; Transfer starting.
<2009-06-01 20:44:52,838> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Control socket being read by [JCA-work-instance:FTP Adapter-4]
<2009-06-01 20:44:52,931> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Control socket read failed by [JCA-work-instance:FTP Adapter-4] DATA=[TIMEDOUT] in [93 msecs]
<2009-06-01 20:44:52,931> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Sending event: 1 with: oracle.tip.adapter.ftp.FTPConnection@1e2d982
<2009-06-01 20:44:52,931> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTPManagedConnection::destroy called, closing physical socket
<2009-06-01 20:44:52,931> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Clearing Event Listeners
<2009-06-01 20:44:53,088> <DEBUG> <default.collaxa.cube.activation> <AdapterFramework::Inbound> afterDelivery() is invoked
<2009-06-01 20:44:53,088> <DEBUG> <default.collaxa.cube.activation> <AdapterFramework::Inbound> Committing JTA transaction com.evermind.server.ApplicationServerTransactionManager@1961a07
I have already changed the timeout of transactions in the following files:
SOA_HOME\j2ee\oc4j_soa\config\transaction-manager.xml
greater thanorion-ejb-jar.xml
SOA_HOME\j2ee\oc4j_soa\application-deployments\orabpel\ejb_ob_engine\orion-ejb-jar.xml
less than transaction-manager.xml
SOA_HOME\bpel\domains\domain_name\config\domain.xml
less than orion-ejb-jar.xml
but the error continues. I need your help pls be grateful
GreetingsJDT
In making the execution of an interface that executes the method SynchRead and review the log. I realized that the same brand message timeout single interface that works well.
<2009-06-02 13:37:50,177> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> ResourceAdapterMetaData Connection Created
<2009-06-02 13:37:50,177> <INFO> <default.collaxa.cube.ws> <AdapterFramework::Outbound> file:/F:/product/10.1.3.1/OracleAS_1/bpel/domains/default/tmp/.bpel_BPEL_REGISTRO_COB_1.0_e24ce5bd36c213c5eba6a75bc9f44618.tmp/FTPArchivosICOMS.wsdl [ SynchRead_ptt::SynchRead(Empty,Pagos) ] - Using JCA Connection Pool - max size = <unbounded>
<2009-06-02 13:37:50,193> <INFO> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Managed Connection Created
<2009-06-02 13:37:50,193> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Adding Event Listener
<2009-06-02 13:37:50,193> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Creating Connection
<2009-06-02 13:37:50,193> <INFO> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Connection Created
<2009-06-02 13:37:50,193> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Connection manager allocated connection :oracle.tip.adapter.ftp.FTPConnection@1f8aab0
<2009-06-02 13:37:50,193> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Creating FTPInteraction
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Creating an FTPSender
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Sender created
<2009-06-02 13:37:50,224> <INFO> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTPInteraction Created
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP outbound adapter interaction invoked : oracle.tip.adapter.ftp.outbound.FTPReadInteractionSpec@13a6c6f
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FileInteraction::PROPS ====>{}
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Considering header for filename, output filename from header: PGLINEAS1-090508133556.txt
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Considering header for directoryName, directoryName from header: Cashier
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Agent Determined
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTPSource::Local Temp Directory is F:\product\10.1.3.1\OracleAS_1\j2ee\home\fileftp\temp_ftp\localhost_default_BPEL_REGISTRO_COB~1.0_\outbound
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Host: myHost
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Post: 21
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Username: myuser
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Keep Connections: true
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP outbound adapter read file interaction invoked.
<2009-06-02 13:37:50,224> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Outbound File Adapter received request to read file with parameters: { Directory=Cashier, FileName=PGLINEAS1-090508133556.txt, DeleteFile=false}, headers=[_directory=[Cashier], _filename=[PGLINEAS1-090508133556.txt], _props=[{}]]
<2009-06-02 13:37:50,240> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Creating Temp File mDGwM+l2LhBE8Qq9VFaD1Q== Local Path: F:\product\10.1.3.1\OracleAS_1\j2ee\home\fileftp\temp_ftp\localhost_default_BPEL_REGISTRO_COB~1.0_\outbound Remote Dir: Cashier
<2009-06-02 13:37:50,240> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Calling getContentsAsStream() on FTPAgent: myHost: type = FTP, host = myHost:21, username = myuser
directory = null, mode = STREAM, fileType = ASCII, maxRetries = 0 Localfile: PGLINEAS1-090508133556.txt Path: F:\product\10.1.3.1\OracleAS_1\j2ee\home\fileftp\temp_ftp\localhost_default_BPEL_REGISTRO_COB~1.0_\outbound\mDGwM+l2LhBE8Qq9VFaD1Q== Remote Dir: Cashier
<2009-06-02 13:37:50,240> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Host name is 'myHost'.
<2009-06-02 13:37:50,240> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Reading reply from myHost
<2009-06-02 13:37:50,255> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Host myHost FTP command: USER myuser
<2009-06-02 13:37:50,255> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Command: USER, reply:
331 Password required for myuser.
<2009-06-02 13:37:50,255> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Host myHost FTP command: PASS
<2009-06-02 13:37:50,255> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Command: PASS, reply:
230 User myuser logged in.
<2009-06-02 13:37:50,255> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTPAgent::absoluteFilePath called with[Cashier], file=[PGLINEAS1-090508133556.txt]
<2009-06-02 13:37:50,255> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Host myHost FTP command: PASV
<2009-06-02 13:37:50,255> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Command: PASV, reply:
227 Entering Passive Mode (192,168,0,150,4,46).
<2009-06-02 13:37:50,255> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Passive: ip = 192.192.0.192, port = 1070
<2009-06-02 13:37:50,255> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Connecting to myHost:1070
<2009-06-02 13:37:50,255> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Host myHost FTP command: TYPE I
<2009-06-02 13:37:50,255> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Command: TYPE, reply:
200 Type set to I.
<2009-06-02 13:37:50,271> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Host myHost FTP command: RETR Cashier\PGLINEAS1-090508133556.txt
<2009-06-02 13:37:50,271> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> FTP Command: RETR, reply:
125 Data connection already open; Transfer starting.
<2009-06-02 13:37:50,287> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Control socket being read by [AJPRequestHandler-HTTPThreadGroup-64]
<2009-06-02 13:37:50,380> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Control socket read failed by [AJPRequestHandler-HTTPThreadGroup-64] DATA=[TIMEDOUT] in [93 msecs]
<2009-06-02 13:37:50,380> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Returning local file: mDGwM+l2LhBE8Qq9VFaD1Q== Path: F:\product\10.1.3.1\OracleAS_1\j2ee\home\fileftp\temp_ftp\localhost_default_BPEL_REGISTRO_COB~1.0_\outbound\mDGwM+l2LhBE8Qq9VFaD1Q==
<2009-06-02 13:37:50,427> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Created translator : oracle.tip.pc.services.translation.xlators.nxsd.NXSDTranslatorImpl@112ff56
<2009-06-02 13:37:50,459> <DEBUG> <default.collaxa.cube.activation> <FTP Adapter::Inbound> Completed translation for : Cashier\PGLINEAS1-090508133556.txt
Thank you...
Edited by: user10655677 on Jun 2, 2009 9:57 AM -
Performance issue TIME OUT Error
Hello Friends,
I am fetching data from BSAD table and getting TIME OUT error.
Program was developed in ECC5.0. In 4.6 there is a function module called ARCH_ANA_PROGRESS_INDICATOR to solve this type of error but it is not there in my ECC5.0.
Is there any alternate function module to solve my problem in ECC5.0 or what is the alternate fuinction module for ARCH_ANA_PROGRESS_INDICATOR in ECC5.0.
Please guide me how to solve my error.Hi Kumar,
u can use pacage size keyword in select statement.
select * package size 10000
from bsad
into table i_bsad
where -
Regards
Kiran -
"ARP time-out" command on Catalyst Switches
Hopefully this would help to all of you that have packet loss or TCP retransmissions, due to the fact that the ARP timeout is an absolute timer and not an activity timer like the MAC Address Table Aging Time.
This is an expected behavior in this type of switches (3750X). When we generate an ARP entry in software, that entry gets programmed into hardware and is not touched again until it is time for a refresh. The refresh happens 1 minute prior to expiration
Therefore, when trying to apply the "ARP timeout" command, be sure to use a timer higher than 1 minute, in order to have, as told before, the 1-minute timer to refresh the ARP table.
Sadly, this is not a bug behavior or something like that, basically, that is how the protocol works.
Anyway, Thanks all for the attention given.Hi,
I am currently using 12.2(58)SE2 on the 3560.
Cisco IOS Software, C3560 Software (C3560-IPSERVICESK9-M), Version 12.2(58)SE2, RELEASE SOFTWARE (fc1)
I downgraded my IOS to check if it's still supported for the 3560 on 12.2(55)SE1 and it's not.
XXX uptime is 1 minute
System returned to ROM by power-on
System restarted at 14:38:50 GMT Tue Jul 29 2014
System image file is "flash:/c3560-ipservicesk9-mz.122-55.SE1.bin"
XXX(config)#ip ssh ?
authentication-retries Specify number of authentication retries
dscp IP DSCP value for SSH traffic
logging Configure logging for SSH
precedence IP Precedence value for SSH traffic
source-interface Specify interface for source address in SSH
connections
time-out Specify SSH time-out interval
version Specify protocol version supported
XXX(config)#ip ssh
I then upgraded to 12.2(55)SE9 and it's still not supported.
XXX uptime is 1 minute
System returned to ROM by power-on
System restarted at 14:47:49 GMT Tue Jul 29 2014
System image file is "flash:/c3560-ipservicesk9-mz.122-55.SE9.bin"
XXX(config)#ip ssh ?
authentication-retries Specify number of authentication retries
dscp IP DSCP value for SSH traffic
logging Configure logging for SSH
precedence IP Precedence value for SSH traffic
source-interface Specify interface for source address in SSH
connections
time-out Specify SSH time-out interval
version Specify protocol version supported
XXX(config)#ip ssh
I would recommend that you upgrade but I don't see any point unfortunately.
Thanks,
Nehmaan -
Hi friends,
Now I'm with another problem.
I have a Specific table with 150.000.000 register approximately. I'm using the select bellow, with the command PACKAGE SIZE, but anyway a time out occurs. The Basis don't have permission to change the time of time out. You can Help-me.
EXAMPLE BELLOW:
SELECT rvers
drcrk
docnr
docln
racct
rcntr
hsl
sgtxt
budat
FROM zglt1sbra
APPENDING TABLE gt_zglt1sbra
PACKAGE SIZE 150000
WHERE rrcty = v_rrcty
WHERE rrcty EQ gw_rrcty
AND rvers IN r_rvers
AND ryear IN br_gjahr
AND docnr IN br_belnr
AND rbukrs EQ br_bukrs-low
AND activ NE c_rkiv
AND activ NE c_rkiu
AND budat IN br_budat
AND zzzxblnr IN br_xblnr.
ENDSELECT.Hi,
a bit old fashioned but it may work:
statics: s_cursor type cursor.
DO.
If sy-index = 1. "first loop.
open cursor with hold s_cursor for
SELECT ..."continue your statement without package size
endif.
fetch next cursor s_cursor
into corresponding fields
of table " your table
package size "your size.
if sy-subrc <> 0.
close cursor s_cursor.
EXIT
endif.
COMMIT WORK. "resets runtime for max runtime
ENDDO.
Be sure not to append all entries but to process them block by block - else memory would be a problem...
Kind regards,
HP. -
Time out error 1.6 million internal table fields are computed using FMs
Hi , All ...
The Report running fine in server with less 300 record but ...production server which has 1.6 million record it gives error as time-out error and takes hell amount of time.
Please suggest ugently ..
I have tried few things
Internal table having 1.6 lacs ... fields to compute .. i have token in a batch
loop at i_cinfo into s_cinfo from 1 to 100000.
and so on ...also applied all the performace related .. like indexs, work areas , deleting adjacent duplicates , for all entries ..wherever applicable.
Please Suggest .
Report is as below
REPORT ZUSOTCBD_CREDIT_REPORT .
TABLES : KNA1, " General Data Customer Master
KNB1, " Customer Master (Company Code)
KNC1, " Customer master (transaction figures)
KNKK, " Customer master credit management: Control area data
T009, " Fiscal Year Variants P
T009Y, " Shortened fiscal years in Asset Accounting P
T001, " Co. Codes
T001CM, " Permitted Credit Control Areas per Company Code
RF42B, " Structure to hold credit data.
RF035, " Structure to hold credit managment fields
RF02L, " Structure to hold credit data.
TRAS, " Interval for Days in Arrears P
T000CM. " Data for DSO calculation.
Types
TYPES:
BEGIN OF type_final,
string(50) TYPE c, " String Value for Title
END OF type_final.
data:wa_final TYPE type_final. " Work Area to hold Title Data
DATA: RASID TYPE RF035-RASID value 'R03N'. " For Days in interval
DATA: MONAT(2) TYPE N.
DATA: GJAHR TYPE KNC1-GJAHR.
DATA: LD_PERIODS(32) TYPE N
VALUE '01020304050607080910111213141516'.
DATA sytabix type sy-tabix.
DATA LAND TYPE KNA1-LAND1 VALUE 'US'. " Country Key
DATA: LD_PERIOD TYPE BSID-MONAT, " Fiscal Year Variant
LD_GJAHR TYPE KNC1-GJAHR,
LD_COUNTER TYPE SY-TABIX.
Internal Tables
Internal table to hold Title Data *
DATA:
i_final TYPE STANDARD TABLE OF type_final.
**Internal Table Permitted Credit Control Areas per Company Code
DATA: BEGIN OF TCMTAB OCCURS 10.
INCLUDE STRUCTURE T001CM.
DATA: END OF TCMTAB.
*Internal table to store Customer no.
DATA : BEGIN OF ICUST OCCURS 0,
KUNNR TYPE KNA1-KUNNR, " Customer No.
END OF ICUST.
DATA: BEGIN OF BUKTAB OCCURS 20,
KKBER LIKE T001-KKBER, " Credit Control Area
BUKRS LIKE T001-BUKRS, " Co. Code
WAERS LIKE T001-WAERS, " Currency
PERIV LIKE T001-PERIV, " Fiscal Year Variant
BUTXT LIKE T001-BUTXT,
END OF BUKTAB.
Internal Table to store Fiscal year Data .
DATA: BEGIN OF GJATAB OCCURS 5,
PERIV LIKE T001-PERIV, " Fiscal Year Variant
GJAHR LIKE KNC1-GJAHR, " Fiscal Year
MONAT LIKE T009-ANZBP, "
ANZBP LIKE T009-ANZBP, " Number of posting periods
END OF GJATAB.
*Main Output internal table to be used to store credit history Information
DATA : BEGIN OF I_CINFO occurs 0,
KUNNR TYPE KNB1-KUNNR, " Customer
KNKLI TYPE KNKK-KNKLI, " Customer's account number with credit limit reference
KKBER TYPE KNKK-KKBER, " Credit Control Area
CTLPC TYPE KNKK-CTLPC, " Risk Category
KLIMK TYPE KNKK-KLIMK, " Credit Limit
SBGRP TYPE KNKK-SBGRP, " Credit representative group for credit management
ERDAT TYPE KNKK-ERDAT, " Created On
DTREV TYPE KNKK-DTREV, " Last Internal Review
REVDB TYPE KNKK-REVDB, " Last External Review
SALDO TYPE RF42B-SALDO, " Balance
DSOIN TYPE RF02L-DSOIN, " DSO
H06SA TYPE RF035-H06SA, " Highest Balance at the end of 6 Months
H06JA TYPE RF035-H06JA, " Year highest Balance 6 Months
H06MO TYPE RF035-H06MO, " Month OF hihest Balance 6 Months
H12SA TYPE RF035-H12SA, " Highest Balance at the end of 12 Months
H12JA TYPE RF035-H12JA, " Year highest Balance 12 Months
H12MO TYPE RF035-H12MO, " Month OF hihest Balance 12 Months
UMP2U TYPE RF42B-UMP2U, " Sales from the current Year
UMP1U TYPE RF42B-UMP1U, " Sales from the Previous Year
SFAEL TYPE RF035-SFAEL, " Total Past Due Open Item
SFAE1 TYPE RF035-SFAE1, " Aging buckets 0-15
SFAE2 TYPE RF035-SFAE2, " Aging buckets 16-30
SFAE3 TYPE RF035-SFAE3, " Aging buckets 31-60
SFAE4 TYPE RF035-SFAE4, " Aging buckets 60-90
SFAE5 TYPE RF035-SFAE5, " Aging buckets Over 90
END Of I_CINFO.
DATA : BEGIN OF S_CINFO ,
KUNNR TYPE KNB1-KUNNR, " Customer
KNKLI TYPE KNKK-KNKLI, " Customer's account number with credit limit reference
KKBER TYPE KNKK-KKBER, " Credit Control Area
CTLPC TYPE KNKK-CTLPC, " Risk Category
KLIMK TYPE KNKK-KLIMK, " Credit Limit
SBGRP TYPE KNKK-SBGRP, " Credit representative group for credit management
ERDAT TYPE KNKK-ERDAT, " Created On
DTREV TYPE KNKK-DTREV, " Last Internal Review
REVDB TYPE KNKK-REVDB, " Last External Review
SALDO TYPE RF42B-SALDO, " Balance
DSOIN TYPE RF02L-DSOIN, " DSO
H06SA TYPE RF035-H06SA, " Highest Balance at the end of 6 Months
H06JA TYPE RF035-H06JA, " Year highest Balance 6 Months
H06MO TYPE RF035-H06MO, " Month OF hihest Balance 6 Months
H12SA TYPE RF035-H12SA, " Highest Balance at the end of 12 Months
H12JA TYPE RF035-H12JA, " Year highest Balance 12 Months
H12MO TYPE RF035-H12MO, " Month OF hihest Balance 12 Months
UMP2U TYPE RF42B-UMP2U, " Sales from the current Year
UMP1U TYPE RF42B-UMP1U, " Sales from the Previous Year
SFAEL TYPE RF035-SFAEL, " Total Past Due Open Item
SFAE1 TYPE RF035-SFAE1, " Aging buckets 0-15
SFAE2 TYPE RF035-SFAE2, " Aging buckets 16-30
SFAE3 TYPE RF035-SFAE3, " Aging buckets 31-60
SFAE4 TYPE RF035-SFAE4, " Aging buckets 60-90
SFAE5 TYPE RF035-SFAE5, " Aging buckets Over 90
END Of s_cinfo.
*Internal table to hold month-wise balance.
DATA: BEGIN OF SALTAB OCCURS 12,
LNUMM(2) TYPE N, " Month
SALDO LIKE RF42B-SALDO, " Balance
END OF SALTAB.
*Internal table used for computing the Balance fields
DATA: BEGIN OF SALDO,
UML01 LIKE KNC1-UM01S,
UML02 LIKE KNC1-UM01S,
UML03 LIKE KNC1-UM01S,
UML04 LIKE KNC1-UM01S,
UML05 LIKE KNC1-UM01S,
UML06 LIKE KNC1-UM01S,
UML07 LIKE KNC1-UM01S,
UML08 LIKE KNC1-UM01S,
UML09 LIKE KNC1-UM01S,
UML10 LIKE KNC1-UM01S,
UML11 LIKE KNC1-UM01S,
UML12 LIKE KNC1-UM01S,
END OF SALDO.
Structure to hold Bal fields ------ -------
DATA: BEGIN OF SKNKK,
KUNNR LIKE KNA1-KUNNR, " Customer Number 1: Debitor
KONTO LIKE KNKK-KUNNR,
SFAE1 LIKE RF035-SFAE1, " Aging buckets 0-15
SFAE2 LIKE RF035-SFAE2, " Aging buckets 16-30
SFAE3 LIKE RF035-SFAE3, " Aging buckets 30-60
SFAE4 LIKE RF035-SFAE4, " Aging buckets 60-90
SFAE5 LIKE RF035-SFAE5, " Aging buckets Over 90
SFAEL LIKE RF035-SFAEL, " Total Due of Items
UML01 LIKE KNC1-UM01S,
UML02 LIKE KNC1-UM01S,
UML03 LIKE KNC1-UM01S,
UML04 LIKE KNC1-UM01S,
UML05 LIKE KNC1-UM01S,
UML06 LIKE KNC1-UM01S,
UML07 LIKE KNC1-UM01S,
UML08 LIKE KNC1-UM01S,
UML09 LIKE KNC1-UM01S,
UML10 LIKE KNC1-UM01S,
UML11 LIKE KNC1-UM01S,
UML12 LIKE KNC1-UM01S,
UMP1U LIKE RF42B-UMP1U, " Sales from the Previous Year
UMP2U LIKE RF42B-UMP2U, " Sales from the current Year
SALDO LIKE RF42B-SALDO, " Balance
END OF SKNKK.
DATA : BEGIN OF ICUST1 OCCURS 0,
KUNNR TYPE KNA1-KUNNR, "For Customer Filter.
END OF ICUST1.
**Internal table to hold fiscal varriants
DATA: BEGIN OF LT_PERIODS OCCURS 12,
PERIOD LIKE BSID-MONAT,
GJAHR LIKE KNC1-GJAHR,
END OF LT_PERIODS.
**Constants
constants : BUKRS1 TYPE KNB1-BUKRS VALUE '1000',
BUKRS2 TYPE KNB1-BUKRS VALUE '1031',
Recs Type i value '200',
B_count type i value '2'.
INITIALIZATION
INITIALIZATION.
IF RASID IS INITIAL.
SELECT * FROM TRAS.
EXIT.
ENDSELECT.
IF SY-SUBRC = 0.
RASID = TRAS-RASID.
ENDIF.
ENDIF.
SELECTION-SCREEN
parameters : p_path type rlgrap-filename default 'C:\Documents and Settings\C890971\Desktop\Credit_history.XLS'.
Start of selection processing
START-OF-SELECTION.
**Get Customers for Co. Code 1000 & 1031.
PERFORM GET_CUST.
Get / Compute Credit Information data for Company Codes 1000 & 1031.
PERFORM GET_CREDIT_DATA.
End of selection processing
*END-OF-SELECTION.
Listing Credit History Data
PERFORM DOWNLOAD_CREDIT_DATA.
S U B R O U T I N E S
*& Form GET_CUST
text
--> p1 text
<-- p2 text
FORM GET_CUST .
Get US only Customers.
Refresh icust.
Select kunnr from kna1 appending table icust
where Land1 = land.
**Delete duplicate records
Delete Adjacent duplicates from icust comparing kunnr.
if icust[] is not initial.
Limit the selection some more to Co. Code 1000 & 1031
As join will cost overhead as compared.
Select kunnr from knb1 into table icust1
for all entries in icust
where kunnr = icust-kunnr
and bukrs = bukrs1
OR bukrs = bukrs2.
**Delete duplicate records
Delete Adjacent duplicates from icust1 comparing kunnr.
endif.
**Free memory.
Free icust.
Credit Control Area
select * from T001CM into table TCMTAB
where bukrs = bukrs1 OR
bukrs = bukrs2.
ENDFORM. " GET_CUST
*& Form GET_CREDIT_DATA
text
--> p1 text
<-- p2 text
FORM GET_CREDIT_DATA .
DATA : L_TEXT(60) TYPE C ,
Ltext1(50) type C value 'Computing Credit-History Data For',
Ltext2(10) type C value 'Customers',
L_PCT type i value '10',
L_recs type i,
l_batch_recs type i,
l_s_rec type i value 1,
l_recs1(7) type N.
***Fetch data from KNKK table
PERFORM GET_KNKK_DATA .
***Computing Crredit Fields
**Number of Customers For whom Deatils needed.
Describe table I_CINFO lines l_recs.
l_recs1 = l_recs.
Concatenate Ltext1 l_recs1 Ltext2 into l_text separated by ' '.
PERFORM GET_PGRESS_INDICATOR USING l_text l_pct.
***If records are more than 200000, should be processed batch-wise
If l_recs > recs.
l_batch_recs = abs( l_recs / b_count ).
Do b_count times.
loop at i_cinfo INTO S_CINFO from l_S_REC to l_batch_recs.
**Remember the row
sytabix = sy-tabix.
**Compute DSO
PERFORM GET_DSO_FIELD .
Compute rest credit history data.
PERFORM COMPUTE_SFIELDS.
endloop.
l_S_REC = l_S_REC + l_batch_recs.
l_batch_recs = l_batch_recs + l_batch_recs.
IF l_batch_recs ge l_recs.
l_batch_recs = l_recs.
eNDIF.
Commit up to here to release the DB locks.
Commit work.
enddo.
else.
loop at i_cinfo INTO S_CINFO.
**Remember the row
sytabix = sy-tabix.
**Compute DSO
PERFORM GET_DSO_FIELD .
Compute rest credit history data.
PERFORM COMPUTE_SFIELDS.
endloop.
Endif.
ENDFORM. " GET_CREDIT_DATA
*& Form GET_KNKK_DATA
text
-->P_ICUST_KUNNR text
FORM GET_KNKK_DATA .
if icust1[] is not initial.
SELECT KUNNR KNKLI KKBER CTLPC KLIMK
SBGRP ERDAT DTREV REVDB
from KNKK into corresponding fields of table I_Cinfo
for all entries in icust1
where kunnr = icust1-kunnr.
Delete Adjacent duplicates from i_cinfo comparing kunnr.
endif.
**Free Memory for internal table icust1.
Free icust1.
ENDFORM. " GET_KNKK_DATA
**& Form GET_DSO_FIELD
text
--> p1 text
<-- p2 text
FORM GET_DSO_FIELD .
***Determine DSO Parameter
PERFORM DSO_PARAMETER.
***Compute DSO
CALL FUNCTION 'CUSTOMER_DSO_CALCULATION'
EXPORTING
I_KKBER = s_cinfo-kkber
I_KUNNR = s_cinfo-kunnr
I_ANZBUPER = T000CM-DSOPP
I_XCHILDS = T000CM-DSOCH
I_ACTBALANCE = T000CM-DSOAB
IMPORTING
E_DSOIN = RF02L-DSOIN
EXCEPTIONS
ERROR_MESSAGE = 1.
ENDFORM. " GET_DSO_FIELD
*& Form DSO_PARAMETER
text
--> p1 text
<-- p2 text
FORM DSO_PARAMETER.
IF T000CM-DSOPP IS INITIAL.
SELECT SINGLE * FROM T000CM.
IF SY-SUBRC EQ 0.
IF T000CM-DSOPP IS INITIAL.
T000CM-DSOPP = '003'.
ENDIF.
ELSE.
T000CM-DSOPP = '003'.
T000CM-DSOCH = ' '.
T000CM-DSOAB = 'X'.
ENDIF.
ENDIF.
ENDFORM. " DSO_PARAMETER
--> p1 text
<-- p2 text
FORM PERIODE_ERMITTELN_EXC USING
P03_BUDAT LIKE SYST-DATUM
P03_GJAHR LIKE KNC1-GJAHR
P03_MONAT LIKE MONAT.
CALL FUNCTION 'FI_PERIOD_DETERMINE'
EXPORTING
I_BUDAT = P03_BUDAT
I_PERIV = T001-PERIV
I_BUKRS = T001-BUKRS
I_GJAHR = P03_GJAHR
I_MONAT = P03_MONAT
IMPORTING
E_GJAHR = P03_GJAHR
E_MONAT = P03_MONAT
EXCEPTIONS
ERROR_MESSAGE = 1.
ENDFORM. "PERIODE_ERMITTELN_EXC
*& Form COMPUTE_SFIELDS
text
--> p1 text
<-- p2 text
FORM COMPUTE_SFIELDS .
**Compute Balance
PERFORM GET_SFIELDS .
S_CINFO-DSOIN = RF02L-DSOIN.
S_CINFO-SALDO = RF035-SALDO.
S_CINFO-H06SA = RF035-H06SA.
S_CINFO-H06JA = RF035-H06JA.
S_CINFO-H06MO = RF035-H06MO.
S_CINFO-H12SA = RF035-H12SA.
S_CINFO-H12JA = RF035-H12JA.
S_CINFO-H12MO = RF035-H12MO.
S_CINFO-UMP2U = RF42B-UMP2U.
S_CINFO-UMP1U = RF42B-UMP1U.
S_CINFO-SFAEL = RF035-SFAEL.
S_CINFO-SFAE1 = RF035-SFAE1.
S_CINFO-SFAE2 = RF035-SFAE2.
S_CINFO-SFAE3 = RF035-SFAE3.
S_CINFO-SFAE4 = RF035-SFAE4.
S_CINFO-SFAE5 = RF035-SFAE5.
modify..
MODIFY I_CINFO FROM S_CINFO INDEX sytabix.
CLEAR: S_CINFO,RF035,RF02L, RF42B.
ENDFORM. " COMPUTE_SFIELDS
text
-->P_C_INFO_KUNNR text
FORM GET_CUST_BAL_INFO.
LOOP AT TCMTAB.
CALL FUNCTION 'FI_COMPANY_CODE_DATA'
EXPORTING
I_BUKRS = TCMTAB-BUKRS
IMPORTING
E_T001 = T001
EXCEPTIONS
ERROR_MESSAGE = 1.
IF SY-SUBRC = 0.
MOVE-CORRESPONDING T001 TO BUKTAB.
BUKTAB-KKBER = TCMTAB-KKBER.
COLLECT BUKTAB.
ENDIF.
ENDLOOP.
LOOP AT BUKTAB WHERE PERIV NE SPACE.
GJATAB-PERIV = BUKTAB-PERIV.
COLLECT GJATAB.
ENDLOOP.
CLEAR: MONAT.
LOOP AT GJATAB.
T001-PERIV = GJATAB-PERIV.
CLEAR: GJAHR, MONAT.
PERFORM PERIODE_ERMITTELN_EXC USING SY-DATLO GJAHR MONAT.
CHECK SY-SUBRC = 0.
GJATAB-GJAHR = GJAHR.
GJATAB-MONAT = MONAT.
SELECT SINGLE * FROM T009 WHERE PERIV = GJATAB-PERIV.
IF SY-SUBRC = 0.
GJATAB-ANZBP = T009-ANZBP.
ENDIF.
MODIFY GJATAB.
ENDLOOP.
LOOP AT BUKTAB.
CHECK NOT ( BUKTAB-PERIV IS INITIAL ).
READ TABLE GJATAB WITH KEY BUKTAB-PERIV.
CHECK SY-SUBRC = 0
AND NOT ( GJATAB-GJAHR IS INITIAL ).
CALL FUNCTION 'CUSTOMER_BALANCE'
EXPORTING
KUNNR = S_cinfo-kunnr
BUKRS = BUKTAB-BUKRS
GJAHR = GJATAB-GJAHR
MONAT = GJATAB-MONAT
PERIV = GJATAB-PERIV
ANZBP = GJATAB-ANZBP
XH6MON = 'X'
XH12MON = 'X'
IMPORTING
UMP2U = RF42B-UMP2U
VMP2U = RF42B-UMP1U
SALDO = RF035-SALDO
UML01 = SALDO-UML01
UML02 = SALDO-UML02
UML03 = SALDO-UML03
UML04 = SALDO-UML04
UML05 = SALDO-UML05
UML06 = SALDO-UML06
UML07 = SALDO-UML07
UML08 = SALDO-UML08
UML09 = SALDO-UML09
UML10 = SALDO-UML10
UML11 = SALDO-UML11
UML12 = SALDO-UML12
EXCEPTIONS
NO_BALANCE = 4.
IF SY-SUBRC = 0.
SKNKK-UMP1U = SKNKK-UMP1U + RF42B-UMP1U.
SKNKK-UMP2U = SKNKK-UMP2U + RF42B-UMP2U.
SKNKK-SALDO = SKNKK-SALDO + RF035-SALDO.
SKNKK-UML01 = SKNKK-UML01 + SALDO-UML01.
SKNKK-UML02 = SKNKK-UML02 + SALDO-UML02.
SKNKK-UML03 = SKNKK-UML03 + SALDO-UML03.
SKNKK-UML04 = SKNKK-UML04 + SALDO-UML04.
SKNKK-UML05 = SKNKK-UML05 + SALDO-UML05.
SKNKK-UML06 = SKNKK-UML06 + SALDO-UML06.
SKNKK-UML07 = SKNKK-UML07 + SALDO-UML07.
SKNKK-UML08 = SKNKK-UML08 + SALDO-UML08.
SKNKK-UML09 = SKNKK-UML09 + SALDO-UML09.
SKNKK-UML10 = SKNKK-UML10 + SALDO-UML10.
SKNKK-UML11 = SKNKK-UML11 + SALDO-UML11.
SKNKK-UML12 = SKNKK-UML12 + SALDO-UML12.
ENDIF.
ENDLOOP.
ENDFORM. "
*& Form GET_SFIELDS
text
--> p1 text
<-- p2 text
FORM GET_SFIELDS .
sknkk-kunnr = S_CINFO-KUNNR.
**Clear target to store computed values
CLEAR: RF035.
**Compute Balance fields
PERFORM GET_CUST_BAL_INFO.
REFRESH: SALTAB.
SALTAB-LNUMM = '01'. SALTAB-SALDO = SKNKK-UML01. APPEND SALTAB.
SALTAB-LNUMM = '02'. SALTAB-SALDO = SKNKK-UML02. APPEND SALTAB.
SALTAB-LNUMM = '03'. SALTAB-SALDO = SKNKK-UML03. APPEND SALTAB.
SALTAB-LNUMM = '04'. SALTAB-SALDO = SKNKK-UML04. APPEND SALTAB.
SALTAB-LNUMM = '05'. SALTAB-SALDO = SKNKK-UML05. APPEND SALTAB.
SALTAB-LNUMM = '06'. SALTAB-SALDO = SKNKK-UML06. APPEND SALTAB.
SALTAB-LNUMM = '07'. SALTAB-SALDO = SKNKK-UML07. APPEND SALTAB.
SALTAB-LNUMM = '08'. SALTAB-SALDO = SKNKK-UML08. APPEND SALTAB.
SALTAB-LNUMM = '09'. SALTAB-SALDO = SKNKK-UML09. APPEND SALTAB.
SALTAB-LNUMM = '10'. SALTAB-SALDO = SKNKK-UML10. APPEND SALTAB.
SALTAB-LNUMM = '11'. SALTAB-SALDO = SKNKK-UML11. APPEND SALTAB.
SALTAB-LNUMM = '12'. SALTAB-SALDO = SKNKK-UML12. APPEND SALTAB.
READ TABLE SALTAB INDEX 1.
RF035-H06SA = SALTAB-SALDO.
RF035-H06MO = SALTAB-LNUMM.
RF035-H12SA = SALTAB-SALDO.
RF035-H12MO = SALTAB-LNUMM.
------ SALTAB ---------------------------------------------
LOOP AT SALTAB.
IF SALTAB-SALDO > RF035-H06SA
AND SY-TABIX < 7.
RF035-H06SA = SALTAB-SALDO.
RF035-H06MO = SALTAB-LNUMM.
ENDIF.
IF SALTAB-SALDO > RF035-H12SA
AND SY-TABIX < 13.
RF035-H12SA = SALTAB-SALDO.
RF035-H12MO = SALTAB-LNUMM.
ENDIF.
ENDLOOP.
------ Period--------------------
REFRESH LT_PERIODS.
CLEAR LD_COUNTER.
READ TABLE BUKTAB INDEX 1.
IF SY-SUBRC = 0.
READ TABLE GJATAB WITH KEY BUKTAB-PERIV.
DO GJATAB-MONAT TIMES
VARYING LD_PERIOD FROM LD_PERIODS(2) NEXT LD_PERIODS+2(2)
RANGE LD_PERIODS.
LT_PERIODS-GJAHR = GJATAB-GJAHR.
LT_PERIODS-PERIOD = LD_PERIOD.
LD_COUNTER = LD_COUNTER + 1.
APPEND LT_PERIODS.
ENDDO.
IF LD_COUNTER LT 12.
LD_GJAHR = GJATAB-GJAHR - 1.
CLEAR T009Y.
SELECT SINGLE * FROM T009Y WHERE PERIV = GJATAB-PERIV
AND GJAHR = LD_GJAHR.
DO GJATAB-ANZBP TIMES
VARYING LD_PERIOD FROM LD_PERIODS(2) NEXT LD_PERIODS+2(2)
RANGE LD_PERIODS.
IF T009Y-ANZBP > 0.
CHECK SY-INDEX <= T009Y-ANZBP.
ENDIF.
LD_COUNTER = LD_COUNTER + 1.
LT_PERIODS-GJAHR = LD_GJAHR.
LT_PERIODS-PERIOD = LD_PERIOD.
APPEND LT_PERIODS.
ENDDO.
ENDIF.
IF LD_COUNTER LT 12.
LD_GJAHR = LD_GJAHR - 1.
DO GJATAB-ANZBP TIMES
VARYING LD_PERIOD FROM LD_PERIODS(2) NEXT LD_PERIODS+2(2)
RANGE LD_PERIODS.
LD_COUNTER = LD_COUNTER + 1.
LT_PERIODS-GJAHR = LD_GJAHR.
LT_PERIODS-PERIOD = LD_PERIOD.
APPEND LT_PERIODS.
ENDDO.
ENDIF.
SORT LT_PERIODS BY GJAHR ASCENDING PERIOD ASCENDING.
LD_COUNTER = LD_COUNTER - 12.
DO LD_COUNTER TIMES.
DELETE LT_PERIODS INDEX 1.
ENDDO.
SORT LT_PERIODS BY GJAHR DESCENDING PERIOD DESCENDING.
READ TABLE LT_PERIODS INDEX RF035-H06MO.
RF035-H06MO = LT_PERIODS-PERIOD.
RF035-H06JA = LT_PERIODS-GJAHR.
READ TABLE LT_PERIODS INDEX RF035-H12MO.
RF035-H12MO = LT_PERIODS-PERIOD.
RF035-H12JA = LT_PERIODS-GJAHR.
ENDIF.
**Compute Due Dates fields
PERFORM GET_AGING_BUCKETS .
RF035-SFAE1 = SKNKK-SFAE1.
RF035-SFAE2 = SKNKK-SFAE2.
RF035-SFAE3 = SKNKK-SFAE3.
RF035-SFAE4 = SKNKK-SFAE4 .
RF035-SFAE5 = SKNKK-SFAE5.
ENDLOOP.
ENDFORM. " GET_BALANCE_SFIELDS
*& Form GET_AGING_BUCKETS
text
--> p1 text
<-- p2 text
FORM GET_AGING_BUCKETS .
DATA: BEGIN OF LT_BUKRS OCCURS 0,
BUKRS LIKE T001-BUKRS,
END OF LT_BUKRS.
DATA: BEGIN OF LT_BUKTAB OCCURS 0,
BUKRS LIKE T001-BUKRS,
WAERS LIKE T001-WAERS,
KKBER LIKE T014-KKBER,
END OF LT_BUKTAB.
DATA: LD_LINES LIKE SY-TABIX.
*...performance optimization: for more than one company codes check....*
*...if balances exist and avoid selection of open items, if they don't.*
*...exist..............................................................*
REFRESH LT_BUKRS.
REFRESH LT_BUKTAB.
DESCRIBE TABLE BUKTAB LINES LD_LINES.
IF LD_LINES GT 1.
SELECT DISTINCT BUKRS APPENDING CORRESPONDING FIELDS
OF TABLE LT_BUKRS
FROM KNC1 FOR ALL ENTRIES IN BUKTAB
WHERE BUKRS = BUKTAB-BUKRS AND
KUNNR = Sknkk-KUNNR.
SELECT DISTINCT BUKRS APPENDING CORRESPONDING FIELDS
OF TABLE LT_BUKRS
FROM KNC3 FOR ALL ENTRIES IN BUKTAB
WHERE BUKRS = BUKTAB-BUKRS AND
KUNNR = Sknkk-KUNNR.
SORT LT_BUKRS.
DELETE ADJACENT DUPLICATES FROM LT_BUKRS.
LOOP AT LT_BUKRS.
LOOP AT BUKTAB WHERE BUKRS = LT_BUKRS-BUKRS.
MOVE-CORRESPONDING BUKTAB TO LT_BUKTAB.
APPEND LT_BUKTAB.
ENDLOOP.
ENDLOOP.
ELSE.
READ TABLE BUKTAB INDEX 1.
MOVE-CORRESPONDING BUKTAB TO LT_BUKTAB.
APPEND LT_BUKTAB.
ENDIF.
*...process company codes for customer given by interface..........*
LOOP AT LT_BUKTAB WHERE KKBER = s_cinfo-KKBER.
CALL FUNCTION 'CUSTOMER_DUE_DATE_ANALYSIS'
EXPORTING BUKRS = LT_BUKTAB-BUKRS
KKBER = ' '
KKBER = s_cinfo-KKBER
KUNNR = Sknkk-KUNNR
RASID = RASID
IMPORTING SFAE1 = RF035-SFAE1
SFAE2 = RF035-SFAE2
SFAE3 = RF035-SFAE3
SFAE4 = RF035-SFAE4
SFAE5 = RF035-SFAE5
SFAEL = RF035-SFAEL
EXCEPTIONS NO_OPEN_ITEMS = 4.
IF SY-SUBRC = 0.
*-- RF035 -
SKNKK-SFAE1 = SKNKK-SFAE1 + RF035-SFAE1.
SKNKK-SFAE2 = SKNKK-SFAE2 + RF035-SFAE2.
SKNKK-SFAE3 = SKNKK-SFAE3 + RF035-SFAE3.
SKNKK-SFAE4 = SKNKK-SFAE4 + RF035-SFAE4.
SKNKK-SFAE5 = SKNKK-SFAE5 + RF035-SFAE5.
SKNKK-SFAE5 = SKNKK-SFAE5 + RF035-SFAE5.
SKNKK-SFAEL = SKNKK-SFAEL + RF035-SFAEL.
ENDIF.
ENDLOOP.
ENDFORM. " GET_AGING_BUCKETS
*& Form header
This Subroutine gets data for displaying title *
There are no interface parameters to be passed to this subroutine. *
FORM header .
wa_final-string = text-000. APPEND wa_final TO i_final.
wa_final-string = text-001. APPEND wa_final TO i_final.
wa_final-string = text-002. APPEND wa_final TO i_final.
wa_final-string = text-003. APPEND wa_final TO i_final.
wa_final-string = text-004. APPEND wa_final TO i_final.
wa_final-string = text-005. APPEND wa_final TO i_final.
wa_final-string = text-006. APPEND wa_final TO i_final.
wa_final-string = text-007. APPEND wa_final TO i_final.
wa_final-string = text-008. APPEND wa_final TO i_final.
wa_final-string = text-009. APPEND wa_final TO i_final.
wa_final-string = text-010. APPEND wa_final TO i_final.
wa_final-string = text-011. APPEND wa_final TO i_final.
wa_final-string = text-012. APPEND wa_final TO i_final.
wa_final-string = text-013. APPEND wa_final TO i_final.
wa_final-string = text-014. APPEND wa_final TO i_final.
wa_final-string = text-015. APPEND wa_final TO i_final.
wa_final-string = text-016. APPEND wa_final TO i_final.
wa_final-string = text-017. APPEND wa_final TO i_final.
wa_final-string = text-018. APPEND wa_final TO i_final.
wa_final-string = text-019. APPEND wa_final TO i_final.
wa_final-string = text-020. APPEND wa_final TO i_final.
wa_final-string = text-021. APPEND wa_final TO i_final.
wa_final-string = text-022. APPEND wa_final TO i_final.
wa_final-string = text-023. APPEND wa_final TO i_final.
wa_final-string = text-024. APPEND wa_final TO i_final.
ENDFORM. " header
*& Form DOWNLOADCREDITDATA
text
-->P_P_PATH text
FORM DOWNLOADCREDITDATA USING P_PATH.
DATA:
lw_file2 TYPE string . " File Path
lw_file2 = p_PATH.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = BIN_FILESIZE
filename = lw_file2
filetype = 'DBF'
APPEND = ' '
write_field_separator = ' '
HEADER = '00'
TRUNC_TRAILING_BLANKS = 'X'
WRITE_LF = 'X'
COL_SELECT = 'X'
COL_SELECT_MASK = ' '
DAT_MODE = 'X'
CONFIRM_OVERWRITE = ' '
NO_AUTH_CHECK = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
WRITE_BOM = ' '
TRUNC_TRAILING_BLANKS_EOL = 'X'
WK1_N_FORMAT = '0'
WK1_N_SIZE = ' '
WK1_T_FORMAT = ' '
WK1_T_SIZE = ' '
IMPORTING
FILELENGTH = FILELENGTH
TABLES
data_tab = I_CINFO
fieldnames = i_final
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
IF sy-subrc <> 0.
Messege
ENDIF. " IF sy-subrc EQ 0
ENDFORM. " DOWNLOADCREDITDATA
*& Form DOWNLOAD_CREDIT_DATA
text
--> p1 text
<-- p2 text
FORM DOWNLOAD_CREDIT_DATA .
PERFORM HEADER.
PERFORM DOWNLOADCREDITDATA USING P_PATH.
ENDFORM. " DOWNLOAD_CREDIT_DATA
*& Form GET_PGRESS_INDICATOR
text
-->P_L_TEXT text
-->P_L_PCT text
FORM GET_PGRESS_INDICATOR USING L_TEXT
L_PCT.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = l_pct
TEXT = l_TEXT.
ENDFORM. " GET_PGRESS_INDICATORIf you are just Downloading to a Flat file then why dont you have logic in place for the program to dump the data read into the file to that point depending on any criteria like accounts or customer then clear the internal table and run it in the back ground.
try to use cursor to read the records from the table which will make it a bit more efficient than plain select stement. -
How to deal with deadlock on wwv_flow_data table when http server times out
There are some threads about a deadlock on the wwv_flow_data table. None of them contain a real explanation for this behaviour. In my case I will try to explain what I think is happening. Maybe it helps somebody who is hitting the same matter.
In my case with APEX 3.2.1 I am navigating from one page to another. Doing this APEX will lock the table wwv_flow_data. As soon as the other page is shown the lock will be released. But now this other page contains a bad performing query (standaard report region). After 5 minutes the http server (modplsql) will time out and present the message "No response from the application server" on the screen. In the meanwhile the query is still running on the database server and the lock stays on the wwv_flow_data table.
Normal user behaviour will be that the user will use the back button to return to the previous page and tries it again to navigate to the other page or
the user will try to refresh the page with the bad performing query.
And voila now you will have a deadlock on the wwv_flow_data table since a second session is trying to do the same thing while the first hasn't finished yet.
How to deal with it?
First of all. Have a good look at the bad performing query. Maybe you can improve it that it will succeed before the http server will timeout.
In my case the 11gr1 optimizer couldn't handle a subquery factoring clause in the best way. After changing it back to a classical inline query the problem was solved.
Secondly you could increase the timeout parameter of the http server. Although this not the best way.
Maybe it would better if APEX in a next version would release the lock on the table wwv_flow_date earlier or do a rollback just before the moment that the http server is timing out.
regards,
Mathieu MeeuwissenHello Shmoove,
I saw your reply here and you probably understand the problems the HTTP 100 response may cause.
I am trying to send image that was taken by getSnapshot. The problem is that the server respond with this HTTP 100 message.
I suspect that the reason that my server doesn't recognize the file that I'm sending from J2me is that the "server to client" response to the 100 message comes after the second message of (see what the TCPIP viewer shows down here):
POST /up01/up02.aspx HTTP/1.1
Content-Type: multipart/form-data; boundary=xxxxyyyyzzz
Connection: Keep-Alive
Content-length: 6294
User-Agent: UNTRUSTED/1.0
Host: szekely.dnsalias.com:80
Transfer-Encoding: chunked
400: Client to Server (126 bytes)
78
--xxxxyyyyzzz
Content-Disposition: form-data; name="pic"; filename="david.jpg"
Content-Type: application/octet-stream
400: Connected to Server
400: Server to Client (112 bytes)
HTTP/1.1 100 Continue
Server: Microsoft-IIS/5.1
Date: Wed, 23 Mar 2005 00:47:02 GMT
X-Powered-By: ASP.NET
Any help will be appreciated,
David -
Program times out while looping at internal table with huge records - Needs fine tuning suggestions
Hi,
I am trying to execute a report. It times out while looping at vbap internal table. This internal table has 140000 records and does the validation within this loop and geenrates data for the output. Due to this huge volume, the program times out when executed foreground.
There are no nested loops, so I cannot apply 'Parallel Cursor' here.
Is there any way I can fine tune the program so that it doesn't timeout? Is it possible to apply 'Parallel Processing' . If yes, how?
Thanks,
PavanHi Pavan ,
->sort your internal table by all primary key for vbap.
->Read a Record from the table (use your condition here)
->if record satisfys your where condition ,get that record index .
->loop the table from the index (without condition) .
its like parallel cursor only but for single loop .;-)
->use field symbols ,wherever possible .
if still dump is coming ,contact your basis team .
regards,
Krishna. -
FTP adapter time out connection
Hello,
I'm trying to send a file with a receiver ftp comunication channel and I obtain the following log in the runtime workbench monitor:
Time Stamp Status Description
2008-05-08 18:41:51 Success Message successfully received by messaging system. Profile: XI URL: http://gestsapxid:50000/MessagingSystem/receive/AFW/XI Credential (User): XIISUSER
2008-05-08 18:41:51 Success Using connection AFW. Trying to put the message into the receive queue.
2008-05-08 18:41:51 Success Message successfully put into the queue.
2008-05-08 18:41:51 Success The message was successfully retrieved from the receive queue.
2008-05-08 18:41:51 Success The message status set to DLNG.
2008-05-08 18:41:51 Success Delivering to channel: FILE_OCHOA_RECEIVER_FTP
2008-05-08 18:41:51 Success File adapter receiver: processing started; QoS required: ExactlyOnce
2008-05-08 18:41:51 Success File adapter receiver channel FILE_OCHOA_RECEIVER_FTP: start processing: party " ", service "ESMAR_OCHOA"
2008-05-08 18:41:51 Success Connect to FTP server "NNN.NNN.NNN.NNN", directory "/ochoaesmar"
2008-05-08 18:41:51 Success Write to FTP server "NNN.NNN.NNN.NNN", directory "/ochoaesmar", file "ochoa20080508_0000000006166839"
2008-05-08 18:41:51 Success Transfer: "TXT" mode, size 412 bytes, character encoding UTF-8
2008-05-08 18:42:12 Error Attempt to process file failed with Connection timed out: connect
2008-05-08 18:42:12 Error Delivery of the message to the application using connection AFW failed, due to: Connection timed out: connect.
2008-05-08 18:42:12 Error Exception caught by adapter framework: Connection timed out: connect
2008-05-08 18:42:12 Success The asynchronous message was successfully scheduled to be delivered at Thu May 08 18:47:12 CEST 2008.
2008-05-08 18:42:12 Success The message status set to WAIT.
I have tested to put a file (with the same FTP parameters) from the promt of the xi server operating system and all works fine. can someone help me to find why the time out connection happens?.
Thank you very much
Alberto.I have tested in the xi server: run->cmd->ping nnn.nnn.nnn.nnn and I don't reach the ftp server but if I test in the xi server: run->cmd->ftp nnn.nnn.nnn.nnn and introduce the user and password then I log in without problem and I can put the file in the remote directory.
If you see in the log above:
2008-05-08 18:41:51 Success Connect to FTP server "NNN.NNN.NNN.NNN", directory "/ochoaesmar"
2008-05-08 18:41:51 Success Write to FTP server "NNN.NNN.NNN.NNN", directory "/ochoaesmar", file "ochoa20080508_0000000006166839"
2008-05-08 18:41:51 Success Transfer: "TXT" mode, size 412 bytes, character encoding UTF-8
2008-05-08 18:42:12 Error Attempt to process file failed with Connection timed out: connect
the first 3 steps are ok. If the ftp was down or if credentials was wrong other error will be generated.
Thank you very much.
Alberto -
We are getting the data from sql server into PI through Soap adapter.
Till day before yesterday everything is running fine .But now it has started giving us the below error.
there were no changes done in the interface.
I am not able to see any error in the runtime workbench ,communication channel monitoring, message monitoring.
This below error is giving in sql server.
Can any PI expert explain or provide me a solution to solve this issue.
Msg 6522, Level 16, State 1, Procedure sp_PI_WS_Backflush_Production_V2, Line 0
A .NET Framework error occurred during execution of user-defined routine or aggregate "sp_PI_WS_Backflush_Production_V2":
System.Net.WebException: The operation has timed out
System.Net.WebException:
at System.Net.HttpWebRequest.GetRequestStream()
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at PI_WS_Backflush_Production_V2.Backflush_OB_Sync_SIService.Backflush_OB_Sync_SI(BackflushRequest_DT BackflushRequest_MT)
at PI_WS_Backflush_Production_V2.StoredProcedures.Backflush_Production_V2(String PalletNumber, String StockKeepingUnit, String ProductionPlant, String BatchNumber, DateTime ProductionDate, String Quantity, String UnitOfMeasure, String Destination, String& uState, String SAPUser, String SAPPassword)Time out issue could be due to the long running process in your SQL server. please check the SQL server for its performance and also check the number of http worker threads on the SQL server side where the SOAP adapter makes the call and get the request back.
-
Time out error while fetching records from table BKPF
Hi,
I am fetching records from table BKPF using BUKRS & AWKEY in where clause. Query is as follows:
SELECT BELNR XBLNR AWKEY
FROM BKPF
INTO TABLE L_I_BKPF_TEMP
PACKAGE SIZE 500
WHERE BUKRS LIKE L_C_EG
AND AWKEY IN L_R_AWKEY .
APPEND LINES OF L_I_BKPF_TEMP TO I_BKPF .
ENDSELECT .
Program is giving time out error. There are 25628 records in range L_R_AWKEY , i m fetching 500 records at a time using PACKAGE SIZE. But the execution of prog stops on this query.
Please suggest something to overcome this problem.Hi
Rui is right,
if you need to get the data by operation parameters u have to use the fields AWTYP and AWKEY.
In this selection u can omit the company code.
SELECT BELNR XBLNR AWKEY FROM BKPF
INTO TABLE L_I_BKPF_TEMP
PACKAGE SIZE 500
WHERE AWTYP = <......> "<------------
AND AWKEY IN L_R_AWKEY .
APPEND LINES OF L_I_BKPF_TEMP TO I_BKPF .
ENDSELECT .
Max -
Time out parameter to avoid Table locking
Hi,
I am looking at any configurable parameter if any for setting the time out parameter to avoid Table locking.Now what's happening is : If i run select ...for update from one session,oracle is applying a lock till i do a commit.And if i run the same query from another session,it takes unspecified time without returning any error.Using the query with NOWAIT options does not serve my purpose.
Any help in this regard is appreciated
Thanks
SamAre you looking for a way to time out the original query, or are you looking for a way for the second query to wait for some time and then abort if it is unable to lock the row(s)?
Justin
Distributed Database Consulting, Inc.
www.ddbcinc.com -
Time out while reading single record from CRMD_ORDERADM_H table on OBJECTID
Hi,
This is the problem i am facing in CRMD_ORDERADM_H.
if i search for a single record in CRMD_ORDERADM_H Table using SE11 on OBJECT_ID field, it is giving me Time out error.
CRMD_ORDERADM_H db size would be > 1 Billion records.
It is having a Secondary Standard index on OBJECT_ID.
If i search for single record with OBJECT_ID and PROCESS_TYPE i am able to get the result within seconds.
But if i take some range in OBJECT_ID and single value in PROCESS_TYPE then i am getting Time out erro.
we have index (custom) on OBJECT_ID and PROCESS_TYPE combination.
What would be the cause?
Thanks in Advance,
-KishoreHello,
there is a special table for reading records from orders: CRMD_ORDER_INDEX.
Regards, R -
Time Out Dump while extracting data from table CKIS
Dear Friends,
I am getting TIme Out dump for the below code, while extracting data from table CKIS.
Table CKIS doesn't have any Indexes. Please guide me to resolve this.
Regards,
Viji.
form get_keko_ckis.
SELECT kalnr kalka kadky tvers bwvar matnr werks kokrs
FROM keko
INTO TABLE i_keko1
FOR ALL ENTRIES IN i_final_modify
WHERE matnr = i_final_modify-main_f
AND werks = p_werks
AND kokrs = p_kokrs
AND kadat = p_kadat
AND bidat = p_bidat
AND bwdat = p_bwdat.
IF sy-subrc = 0.
SORT i_keko1 BY kalnr kalka kadky tvers bwvar.
SELECT kalnr kalka kadky tvers bwvar posnr typps kstar
matnr menge gpreis
FROM ckis
INTO TABLE i_ckis_temp
FOR ALL ENTRIES IN i_keko1
WHERE kalnr = i_keko1-kalnr
AND kalka = i_keko1-kalka
AND kadky = i_keko1-kadky
AND tvers = i_keko1-tvers
AND bwvar = i_keko1-bwvar.
IF sy-subrc = 0.
SORT i_ckis_temp BY kalnr kalka kadky tvers bwvar.
LOOP AT i_ckis_temp INTO wa_ckis_temp.
wa_ckis-kalnr = wa_ckis_temp-kalnr.
wa_ckis-kadky = wa_ckis_temp-kadky.
wa_ckis-posnr = wa_ckis_temp-posnr.
wa_ckis-typps = wa_ckis_temp-typps.
wa_ckis-kstar = wa_ckis_temp-kstar.
wa_ckis-matnr1 = wa_ckis_temp-matnr1.
wa_ckis-menge = wa_ckis_temp-menge.
wa_ckis-gpreis = wa_ckis_temp-gpreis.
CLEAR wa_keko1.
READ TABLE i_keko1 INTO wa_keko1
WITH KEY kalnr = wa_ckis_temp-kalnr
kalka = wa_ckis_temp-kalka
kadky = wa_ckis_temp-kadky
tvers = wa_ckis_temp-tvers
bwvar = wa_ckis_temp-bwvar
BINARY SEARCH.
IF sy-subrc = 0.
wa_ckis-matnr = wa_keko1-matnr.
wa_ckis-werks = wa_keko1-werks.
ENDIF.
APPEND wa_ckis TO i_ckis.
CLEAR: wa_ckis_temp, wa_ckis.
ENDLOOP.
ENDIF.
REFRESH: i_keko1, i_ckis_temp.
ENDIF.
endform. " get_keko_ckisHi Try minimising the conditions in where clause
SELECT fields..... FROM CKIS
WHERE KALNR = KEKO-KALNR AND
KADKY = KEKO-KADKY AND
TVERS = KEKO-TVERS AND
TYPPS = 'M'.
after this, deleting unwanted records from internal table as per pending conditions...
Regds,
Anil
Maybe you are looking for
-
Transfer customer fields from EBP to R/3
Hey, we have a SRM-system with a R/3 backend and added some customer fields to the accounting or purchase orders. The question now is how to transfer the cuf-data from SRM to R/3. There are the function-modules like B470_PO_CREATE of package BBP_BD w
-
Image sent with photo app does not show on mail sent box. How do I find it?
My daughter sent a photo from the photo album on her itouch. I search it in her mail sent box, but I cannot find it. Any idea how to find it? Thanks
-
Automatic Row Processing (DML) Update problem
Hi All, I am using Oracle 10.2.0.3 on Windows Server 2003 with "Application Express 3.1.0.00.32". I have two schemas in the database, A and B B has all the tables which holds the production data A has all the synonymns for all of B's objects and plus
-
Color Management: Results differ between Lightroom and ColorSync
Hi. I'm on a Mac and using LightRoom 3 with a Canon PIXMA MG5250 printer. I have read elsewhere on the web that choosing a profile from within Lightroom's Print interface is essentially the same as selecting "Color Sync" under "Color Matching" in the
-
I´m using XML Publisher 5.5 with Template Builder. I have created an RTF document that works perfect with XML Publisher. I now want work more complicated with my template using XSL. I have through Template Builder created an XSL-FO style sheet. I ope