Use of Transaction in Parallel flow
Hi -
I have created a SSIS package having 6 different DFT. All are loading data into different tables. So i want if one DFT fail then corresponding data of that DFT should roll back. I would like to use separate transaction for different data flow. So I have
used "Begin Transaction" in 6 different execute SQL task (1 for each DFT). Similarly 6 execute SQL task for "commit transaction" and 6 execute SQL task for "roll back transaction" 1 for each DFT. However, its failing with error
saying "The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION.".
Could you please advise how to over come this error?
Thanks,
Partha
You should be implementing transactions in SSIS which is a distributed transactions
http://visakhm.blogspot.in/2013/04/implementing-checkpoint-in-ssis.html
Please Mark This As Answer if it solved your issue
Please Mark This As Helpful if it helps to solve your issue
Visakh
My MSDN Page
My Personal Blog
My Facebook Page
Similar Messages
-
How to use parallel flowed subforms begining at the same position.
How to use parallel flowed subforms begining at the same position in my form.
Ex
Subform1
Subform2
Subform3
DropDownList1
DropDownList1
DropDownList1
I would like to repeat with a button the 3 subforms in parallel
Subform1
Subform2
Subform3
DropDownList1
DropDownList1
DropDownList1
Subform1
Subform2
Subform3
DropDownList1
DropDownList1
DropDownList1Post your question in the LiveCycle Designer forum.
-
Parallel Flow in BPEL not working.
We are using 10.1.3.4.We have a designed a process in bpel where we have parallel flows .Each flow has an invoke activity that calls an external service.
Each partnerlink has property "nonBlockingInvoke" specified.
We have also added the property in bpel.xml as below:
<configurations>
<property name="inMemoryOptimization">true</property>
<property name="completionPersistPolicy">faulted</property>
<property name="completionPersistLevel">All</property>
</configurations>
Now after adding the above property along with property "nonBlockingInvoke" specified for each partnerlink we are getting a timeout error.
once I remove the configuration property it works .Even if we remove the nonBlockingInvoke property then it works.But unfortunately as per our requirement we need parallel processing and inMemory optimisation both.
Any help on this regards will be highly appreciated.
my bpel.xml
<?xml version = '1.0' encoding = 'UTF-8'?>
<BPELSuitcase>
<BPELProcess id="SyncParallelFlow" src="SyncParallelFlow.bpel">
<partnerLinkBindings>
<partnerLinkBinding name="client">
<property name="wsdlLocation">SyncParallelFlow.wsdl</property>
</partnerLinkBinding>
<partnerLinkBinding name="BPELTest1">
<property name="wsdlLocation">BPELTest1Ref.wsdl</property>
<property name="nonBlockingInvoke">true</property>
</partnerLinkBinding>
<partnerLinkBinding name="BPELTest2">
<property name="wsdlLocation">BPELTest2Ref.wsdl</property>
<property name="nonBlockingInvoke">true</property>
</partnerLinkBinding>
</partnerLinkBindings>
<configurations>
<property name="inMemoryOptimization">true</property>
<property name="completionPersistPolicy">faulted</property>
<property name="completionPersistLevel">All</property>
</configurations>
</BPELProcess>
</BPELSuitcase>Well, remember inMemoryOptimization works only for Synchronous-Transient (Without any dehydration in between) processes.
When you set nonBlockingInvoke=true, then each invoke happens in a seperate thread/transaction, which forces dehydration in the process.
That's the reason in your case it's not working.
Hope this explains.
Thanks-
[email protected]
http://www.ibiztrack.com -
Hi,
We have the following requirement. We have a manual task that should be either completed by a user , or if a specified time duration expires it should be automatically completed. We tried using jeopardy notification , but through the jeopardy notification automation we can't use the completeTaskOnExit in order to proceed the task. We also tried using a parallel flow , with the manual task in the first parallel flow and a timer delay on the second parallel flow , but we were not able to complete the manual task in the first parallel flow, when the timer delay expired.
If you have any experience regarding parallel flows , could you pls help?
ThanksHi again,
I am using the following xquery in the jeopardy tab of the automated task :
declare namespace oms="urn:com:metasolv:oms:xmlapi:1";
declare namespace context = "java:com.mslv.oms.automation.TaskContext";
declare namespace automator = "java:oracle.communications.ordermanagement.automation.plugin.ScriptReceiverContextInvocation";
declare variable $automator external;
declare variable $context external;
let $run :=
<oms:Run>
automator:setUpdateOrder($automator,"false"),
context:completeTaskOnExit($context, "next")
</oms:Run>
where (fn:exists($run))
return
$run/oms:Null
but i am getting the following error : External object has wrong class (is class com.mslv.oms.automation.OrderNotificationContextBeanLocal, expected interface com.mslv.oms.automation.TaskContext) . If i use the following :
declare namespace context = "java:com.mslv.oms.automation.OrderNotificationContext"; i cannot use the completeTaskOnExit function in my xquery, and i get the following error :
Cannot find a matching 2-argument function named {java:com.mslv.oms.automation.OrderNotificationContext}completeTaskOnExit()
Can you please help? -
Cancelling an async call in parallel flow activity
Hi all,
As known, each branch of a parallel flow activity must be completed for rest of the BPEL execution continues. Let me expose a scenario:
Imagine you need to get the current market value of the euro. You have 3 different sources of information that deliver the same result. Using parallel flow activity, you perform calls to these 3 sources. Once the first source calls back, it´s not necessary to wait for the others callback, because you already have the information that you need in your hands. How can I cancel the other waiting async calls? In WLI, we set up the parallel flow as AND or OR type. Using AND (+) means that all branch must be completed so that the process continues. Using OR (-) means that once the first branch is finished, the others will be ignored (cancelled) and the process continues. How can I get the same feature in BPEL?Hi Gustavo,
There may be easier way to do this, but somehow it's not striking at the moment. In the meantime, you can try the following and see. If i get more robust and easier solution, i'll post it here.
Just thinking aloud here:
1) Throw a fault e.g. ResponseRecieved in each branch as soon as the branch recieves a response. The fault has to be handled in a fault handler associated with a scope containing the parallel flow. You can leave the fault handler "empty" (no-oos) and proceed with the rest of the activities.
The above should allow the control to proceed with the activities next to the flow.
OR
2) In each flow, as soon as you receive a response after receive activity, invoke a callback port type of the rest of the asynchronous calls and send a dummy callback message. This should mark the completion of the receive activities in other branches. I think correlaiton needs to be handled here.
Please try if you have not already done so and let me know.
Thanks-
www.ibiztrack.com
BPEL/ESB Training:
http://www.ibiztrack.com/html/oracle-bpel-soa-training.html -
Parallel Flow invokes async services with incorrect parameters
Hi
I'm calling an async service using 2 partnerlinks in a parallel flow.
The input variables are being assigned correctly but one of the invokes is using the wrong values.
The problem appears to be around the use of a shared variable (Invoke_initiate_InputVariable) that is 'copied' to each of the invoke variables
On invocation both services are iincorrectly nvoked with:
<Invoke_initiate_InputVariable>
<part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="payload">
<HumanTaskProcessRequest xmlns="http://itv.com/HumanTask">
<Production/>
<HumanTask>
<Title>Title2</Title>
<Priority>2</Priority>
<UserGroups>STC</UserGroups>
</HumanTask>
</HumanTaskProcessRequest>
</part>
</Invoke_initiate_InputVariable>
I can get the process to work if I remove all references to the variable Invoke_initiate_InputVariable - can anyone explain this behaviour?
Example BPEL code:
<process name="ParallelTest" targetNamespace="http://itv.com/ParallelTest"
xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/"
xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20"
xmlns:ns1="http://itv.com/HumanTask"
xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:bpelx="http://schemas.oracle.com/bpel/extension"
xmlns:client="http://itv.com/ParallelTest"
xmlns:ora="http://schemas.oracle.com/xpath/extension"
xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
<partnerLinks>
<partnerLink name="client" partnerLinkType="client:ParallelTest"
myRole="ParallelTestProvider"
partnerRole="ParallelTestRequester"/>
<partnerLink myRole="HumanTaskRequester" name="HumanTask_1"
partnerRole="HumanTaskProvider"
partnerLinkType="ns1:HumanTask"/>
<partnerLink myRole="HumanTaskRequester" name="HumanTask_2"
partnerRole="HumanTaskProvider"
partnerLinkType="ns1:HumanTask"/>
</partnerLinks>
<variables>
<variable name="inputVariable"
messageType="client:ParallelTestRequestMessage"/>
<variable name="outputVariable"
messageType="client:ParallelTestResponseMessage"/>
<variable name="Invoke_initiate_InputVariable"
messageType="ns1:HumanTaskRequestMessage"/>
<variable name="Invoke_1_initiate_InputVariable"
messageType="ns1:HumanTaskRequestMessage"/>
<variable name="Invoke_2_initiate_InputVariable"
messageType="ns1:HumanTaskRequestMessage"/>
<variable name="Receive_1_onResult_InputVariable"
messageType="ns1:HumanTaskResponseMessage"/>
<variable name="Receive_2_onResult_InputVariable"
messageType="ns1:HumanTaskResponseMessage"/>
</variables>
<sequence name="main">
<receive name="receiveInput" partnerLink="client"
portType="client:ParallelTest" operation="initiate"
variable="inputVariable" createInstance="yes"/>
<assign name="Assign_2">
<copy>
<from expression="'A Title'"/>
<to variable="Invoke_initiate_InputVariable" part="payload"
query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Title"/>
</copy>
<copy>
<from expression="5"/>
<to variable="Invoke_initiate_InputVariable" part="payload"
query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Priority"/>
</copy>
<copy>
<from expression="'GRA'"/>
<to variable="Invoke_initiate_InputVariable" part="payload"
query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:UserGroups"/>
</copy>
</assign>
<flow name="Flow_1">
<sequence name="Sequence_1">
<assign name="Assign_1">
<copy>
<from variable="Invoke_initiate_InputVariable"/>
<to variable="Invoke_2_initiate_InputVariable"/>
</copy>
<copy>
<from expression="'Title2'"/>
<to variable="Invoke_2_initiate_InputVariable"
part="payload"
query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Title"/>
</copy>
<copy>
<from expression="2"/>
<to variable="Invoke_2_initiate_InputVariable"
part="payload"
query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Priority"/>
</copy>
<copy>
<from expression="'STC'"/>
<to variable="Invoke_2_initiate_InputVariable"
part="payload"
query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:UserGroups"/>
</copy>
</assign>
<invoke name="Invoke_2" partnerLink="HumanTask_2"
portType="ns1:HumanTask" operation="initiate"
inputVariable="Invoke_2_initiate_InputVariable"/>
<receive name="Receive_2" partnerLink="HumanTask_2"
portType="ns1:HumanTaskCallback" operation="onResult"
variable="Receive_1_onResult_InputVariable"
createInstance="no"/>
</sequence>
<sequence name="Sequence_1">
<assign name="Assign_1">
<copy>
<from variable="Invoke_initiate_InputVariable"/>
<to variable="Invoke_1_initiate_InputVariable"/>
</copy>
<copy>
<from expression="'Title1'"/>
<to variable="Invoke_1_initiate_InputVariable"
part="payload"
query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Title"/>
</copy>
<copy>
<from expression="3"/>
<to variable="Invoke_1_initiate_InputVariable"
part="payload"
query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Priority"/>
</copy>
<copy>
<from expression="'NTC'"/>
<to variable="Invoke_1_initiate_InputVariable"
part="payload"
query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:UserGroups"/>
</copy>
</assign>
<invoke name="Invoke_1" partnerLink="HumanTask_1"
portType="ns1:HumanTask" operation="initiate"
inputVariable="Invoke_1_initiate_InputVariable"/>
<receive name="Receive_1" partnerLink="HumanTask_1"
portType="ns1:HumanTaskCallback" operation="onResult"
variable="Receive_2_onResult_InputVariable"
createInstance="no"/>
</sequence>
</flow>
<invoke name="callbackClient" partnerLink="client"
portType="client:ParallelTestCallback" operation="onResult"
inputVariable="outputVariable"/>
</sequence>
</process>Thanks Marc, I've done what you suggested but it hasn't fixed the problem.
Here is the updated process with scopes and local variables:
<process name="ParallelTest" targetNamespace="http://itv.com/ParallelTest" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:xp20="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.Xpath20" xmlns:ns1="http://itv.com/HumanTask" xmlns:ldap="http://schemas.oracle.com/xpath/extension/ldap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpelx="http://schemas.oracle.com/bpel/extension" xmlns:client="http://itv.com/ParallelTest" xmlns:ora="http://schemas.oracle.com/xpath/extension" xmlns:orcl="http://www.oracle.com/XSL/Transform/java/oracle.tip.pc.services.functions.ExtFunc">
<partnerLinks>
<partnerLink name="client" partnerLinkType="client:ParallelTest" myRole="ParallelTestProvider" partnerRole="ParallelTestRequester"/>
<partnerLink myRole="HumanTaskRequester" name="HumanTask_1" partnerRole="HumanTaskProvider" partnerLinkType="ns1:HumanTask"/>
<partnerLink myRole="HumanTaskRequester" name="HumanTask_2" partnerRole="HumanTaskProvider" partnerLinkType="ns1:HumanTask"/>
</partnerLinks>
<variables>
<variable name="inputVariable" messageType="client:ParallelTestRequestMessage"/>
<variable name="outputVariable" messageType="client:ParallelTestResponseMessage"/>
<variable name="Invoke_initiate_InputVariable" messageType="ns1:HumanTaskRequestMessage"/>
<variable name="Receive_1_onResult_InputVariable" messageType="ns1:HumanTaskResponseMessage"/>
<variable name="Receive_2_onResult_InputVariable" messageType="ns1:HumanTaskResponseMessage"/>
</variables>
<sequence name="main">
<receive name="receiveInput" partnerLink="client" portType="client:ParallelTest" operation="initiate" variable="inputVariable" createInstance="yes"/>
<assign name="Assign_2">
<copy>
<from expression="'A Title'"/>
<to variable="Invoke_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Title"/>
</copy>
<copy>
<from expression="5"/>
<to variable="Invoke_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Priority"/>
</copy>
<copy>
<from expression="'GRA'"/>
<to variable="Invoke_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:UserGroups"/>
</copy>
</assign>
<flow name="Flow_1">
<sequence name="Sequence_2">
<scope name="Scope_2">
<variables>
<variable name="Invoke_2_initiate_InputVariable" messageType="ns1:HumanTaskRequestMessage"/>
</variables>
<sequence name="Sequence_2">
<assign name="Assign_1">
<copy>
<from variable="Invoke_initiate_InputVariable"/>
<to variable="Invoke_2_initiate_InputVariable"/>
</copy>
<copy>
<from expression="'Title2'"/>
<to variable="Invoke_2_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Title"/>
</copy>
<copy>
<from expression="2"/>
<to variable="Invoke_2_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Priority"/>
</copy>
<copy>
<from expression="'STC'"/>
<to variable="Invoke_2_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:UserGroups"/>
</copy>
</assign>
<invoke name="Invoke_2" partnerLink="HumanTask_2" portType="ns1:HumanTask" operation="initiate" inputVariable="Invoke_2_initiate_InputVariable"/>
<receive name="Receive_2" partnerLink="HumanTask_2" portType="ns1:HumanTaskCallback" operation="onResult" variable="Receive_2_onResult_InputVariable" createInstance="no"/>
</sequence>
</scope>
</sequence>
<sequence name="Sequence_1">
<scope name="Scope_1">
<variables>
<variable name="Invoke_1_initiate_InputVariable" messageType="ns1:HumanTaskRequestMessage"/>
</variables>
<sequence name="Sequence_3">
<assign name="Assign_1">
<copy>
<from variable="Invoke_initiate_InputVariable"/>
<to variable="Invoke_1_initiate_InputVariable"/>
</copy>
<copy>
<from expression="'Title1'"/>
<to variable="Invoke_1_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Title"/>
</copy>
<copy>
<from expression="3"/>
<to variable="Invoke_1_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:Priority"/>
</copy>
<copy>
<from expression="'NTC'"/>
<to variable="Invoke_1_initiate_InputVariable" part="payload" query="/ns1:HumanTaskProcessRequest/ns1:HumanTask/ns1:UserGroups"/>
</copy>
</assign>
<invoke name="Invoke_1" partnerLink="HumanTask_1" portType="ns1:HumanTask" operation="initiate" inputVariable="Invoke_1_initiate_InputVariable"/>
<receive name="Receive_1" partnerLink="HumanTask_1" portType="ns1:HumanTaskCallback" operation="onResult" variable="Receive_1_onResult_InputVariable" createInstance="no"/>
</sequence>
</scope>
</sequence>
</flow>
<invoke name="callbackClient" partnerLink="client" portType="client:ParallelTestCallback" operation="onResult" inputVariable="outputVariable"/>
</sequence>
</process> -
How to control Transaction in task flow ?
Hi All,
In Each task flow under behavior tab we have transaction which contains following sub category
1-Always Begin New Transaction
2-Always use Existing Transaction
3-use Existing transaction if possible
Would any one give me real example which will show the purpose of this things
Thanks
Edited by: ADFORCLE on Jan 16, 2012 6:26 PMhttp://one-size-doesnt-fit-all.blogspot.com/2011/05/jdev-11g-task-flows-adf-bc-always-use.html
http://one-size-doesnt-fit-all.blogspot.com/2011/05/jdev-11g-task-flows-adf-bc-one-root.html -
When we use call transaction and session method?
cud anyone tell me the exact difference between session and call transaction ? when we have to use ?
hi,
BATCH INPUT METHOD
Asynchronous processing
Transfer data for multiple transactions.
Synchronous database update.
A batch input process log is generated for each session.
Session cannot be generated in parallel.
CALL TRANSACTION METHOD:
Using CALL TRANSACTION USING statement
Faster processing of data
Synchronous processing
Transfer data for a single transaction.
No batch input processing log is generated. -
Calling Asynch Service in a Parallel Flow (FlowN)
Hi,
In one of the processes, we have a requirement to call an Asynch Service within parallel flow, meaning that, the same Asynch Service would be called several times, with different payload, dependent on the number of lines, which is decided during the run time. When this Async Service is called, the expectation is, after the flow is completed, it will call back the exact location, where the call was made from, to the corresponding line.
This second Asynch Service is also depicted by a BPEL process. When we have multiple such calls made, the Receive after the invoke from the main process, fails, with the following message:
<conflictingReceive>
<part name="summary" >
<summary>Conflicting receive. Another receive activity or equivalent (currently, onMessage branch in a pick activity) has already been enabled with the partnerLink "MobileNumberPortabilityService", operation name "onResult" and correlation set "" (or conversation id). Appendix A - Standard Faults in the BPEL 1.1 specification specifies a fault should be thrown under these conditions. </summary>
</part>
</conflictingReceive>
When I looked into the conversation id of the sub-process, the conversation id seems to be the same for every process which got initiated as follows:
bpel://localhost/default/ROTelcoNewOrder~1.0/7358-BpInv14-BpSeq31.330-2
Given this scenario, how would the sub-process know to call back the exact instance (within the parallel flow), where the call came from, so that it can exactly join the location. Does it require a different kind of implementation, for parallel flows, please..
Any pointers or guidelines, please..
Thanks and Regards,
Vijay.Vijay,
this may be caused by a bug in the FlowN (bugnumber 4944123), where the values used on the invokes are the same for all the calls. For an asynchronous call, this can be bypassed by making two loops based on the number of lines (loop 1 for invoke, loop 2 for receive). That way you won't have any trouble with the correlation as well.
Hth,
Mike -
Use Single Transaction Option / MergeTransactions Property Not Limiting To Single Transaction
I have a SSRS report which contains a List. Within the List is a sub-report. Although the option "use single transaction when processing the queries" has been selected for the Data Sources of all reports/sub-reports, and all reports use the same
Shared Data Source, multiple transactions are utilized. I have also set the MergeTransactions property of every SubReport to True.
It is critical that the report use only one connection to the Data Source when it is executed (limited licensing issue with old DBMS - UniData).
For my other SSRS reports, which contain sub reports but the sub reports are not within a List, the "use single transaction when processing the queries" option works as expected and a single connection is made to the Data Source when the report
is executed.
Is there something I can do to force a single transaction to be used in this situation? I am running SQL Server 2008 R2 Enterprise Edition SP3. I found this fix for the problem for SQL Server 2008: kb 974404 (won't let me insert links).
Thanks, KevinWendy,
Thank you for responding. The reports all use the same shared datasource. However, they do not use shared datasets. Each DataSet calls an SQL Server Stored Procedure located in the same SQL Server Database. When this report is executed, multiple connections
are opened to the DBMS from which the data is actually fetched, which can only occur of SSRS is executing multiple Stored Procedures in parallel. I have confirmed this behavior by logging which Stored Procedures are executed and when. I have confirmed the
behavior in the other DBMS by running a command which lists all licenses used. Several connections are listed from the User which is used exclusively for the SSRS reporting. All of these connections are opened at the same time (within fractions of
a second) that execution of the SSRS report begins.
As to whether multiple transactions are used by SSRS, I can only assume they are, since multiple connections are opened and queries are executed concurrently. I should state again that I am concerned about connections made, not transactions in SQL Server.
I have many other reports, some of which call the same Stored Procedures as the problematic report. When these other reports are executed, and the "use single transaction..." and MergeTransactions options are set, only one connection is opened though
several queries are executed. It is only when a sub report is placed in a list that multiple connections are made and queries are executed concurrently even though the afore mentioned options are set.
I can provide further details about the DBMS where the data reported on resides and how queries are executed against this database from an SQL Server Stored Procedure if you require it. However, I have ensured there is no parallel code and that SSRS is initiating
the concurrent connections by executing the Stored Procedure which the Sub Report reports on multiple times in parallel. I can also provide the report definitions if you need them.
Thanks,
Kevin -
Can we make use of Transaction code FKMT for vendor line items
Hi
Please advise me whether we can make use of Transaction code FKMT (Account assignment model) for vendor line items as follows:
For Example:
Expenditure Account Dr. Rs.1000
To Vendor A Rs.100
To Vendor B Rs.100
To Vendor C Rs.100
To Vendor D Rs.700
Also please advise me what to give parameters
Thanks and Best Regards
Shekhar
Edited by: Shekhar Yecham on Sep 19, 2008 7:05 AM
Edited by: Shekhar Yecham on Sep 19, 2008 7:10 AMDear Kulakarni,
I found few of my fields in 0FI_AP_4.I did n't find few fields can i enhance the Datasourse.
What is the respective Cube for that Datasourse.
I check 0AP_30,but in Business Content that cube is not available.
Could you please give me guidance.
Thanks in Advance,
Srinivasan. -
How to execute a report using a transaction code?
Hi team,
I am new in ABAP and I want to do a very simple report and then call this report using a transaction code.
Steps:
1) create the report (SE38)
the report is: Z_DEMO
2) generate a transaction code for this report (SE93)
note: the transaction code is ZDEMO
3) call the transaction generated on step 2
When I execute the report using SE38, everythig is ok and the records are inserted in my table zdemo2.
But when I call my transaction ZDEMO there is no insertion. Why?
The report ask for parameters and then fowards me to SAP's main menu.
Thanks,
Walter.
The report is:
REPORT Z_DEMO.
tables: zdemo2.
parameters:
nombre like zdemo2-nombre,
edad like zdemo2-edad.
data:
begin of tabla occurs 0,
nombre like zdemo2-nombre,
edad like zdemo2-edad,
end of tabla.
zdemo2-nombre = nombre.
zdemo2-edad = edad.
insert zdemo2.Hi,
While creating the transaction for your program
1>Make sure u give the program name and screen number
2>Important thing is a option "GUI SUPPORT"
Check all the checkboxes or atleast SAPGUI for Windows to ensure that the Code runs in SAP GUI.
Thank you. -
Error 00-341 RAISE_EXCEPTION when using Call Transaction for VA01 in backgr
Hi,
I am getting this message when I use call transaction to create a sales order using VA01. Following is the statement I have used. Note that when i execute the program online, I am not getting any errors. I could create sales order without any problem. I am getting this exception only when I run in background.
CALL TRANSACTION 'VA01'
USING BDC_TAB
MODE 'N'
UPDATE 'S'
MESSAGES INTO W_MESS_TAB.
When I captured message tab, I got following messages.
DC006 - Control Framework: Fatal error - GUI cannot be reached
00341 Runtime error RAISE_EXCEPTION has occurred.
Please help me in this regard.
Regards
KasiSome times execution of BDC program in back ground is different from the foreground. Some screens may appear in background and raise error while same will not when executed in foreground.
Double click the message in Session log to know more details.
One way is to suppress the screen while executing BDC.
Alternatively I suggest to use BAPI instead.
- Sanjay -
Investment mgt:Error while distributing budgets using IM52 transaction code
I am getting an error message"Availability control can not be activated for hierarchial projects" when I distribute budgets using IM52 transaction code in Investment management.
Can you please tell me why and how to solve it?
Edited by: aravind reddy on Aug 19, 2008 4:34 PMI am getting an error message"Availability control can not be activated for hierarchial projects" when I distribute budgets using IM52 transaction code in Investment management.
Can you please tell me why and how to solve it?
Edited by: aravind reddy on Aug 19, 2008 4:34 PM -
Hi ,
This is vijay...
can anyone help me plz
Hi,
Iam uploading data using call transaction.Tcode is ff67.In this TCode we have the begining balance(ssald) and ending balance(esald).The new record we are uploading will take the begining balance as the previous record ending balance, if we give the begining balance wrong then the record does not saved it will show error(the begining balance does not match with the prior ending balance).
while uploading the data using MODE A iam able to get the desired output but by using the MODE N iam not able to get the desired output i,e if there is any error in the begining balance also the record is being saved iam not getting the error message.
Iam attaching the code below..please help me
report Z_BRS_BDC no standard page heading line-size 255.
INTERNAL TABLES DECLARATIONS
DATA : BEGIN OF bdcdata OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA : END OF bdcdata.
DATA: LV_OUT TYPE STRING.
DATA : iopt LIKE ctu_params.
DATA : wa_rec_err TYPE i.
DATA : wa_rec_wri TYPE i.
DATA : wa_tot_rec TYPE i.
DATA : amt(16) type c.
DATA : BEGIN OF gu_upload OCCURS 0,
hbkid LIKE febmka-hbkid,
hktid LIKE febmka-hktid,
aznum LIKE febmka-aznum,
azdat LIKE febmka-azdat,
ssald LIKE amt,
esald LIKE amt,
budtm LIKE febmka-budtm,
mnam1 LIKE febmka-mnam1,
jname LIKE febmka-jname,
vgman LIKE febmka-vgman,
valut LIKE febep-valut,
kwbtr(13) TYPE c,
chect_kf LIKE febmkk-chect_kf,
END OF gu_upload.
DATA:GU_DOWNLOAD LIKE GU_UPLOAD OCCURS 0 WITH HEADER LINE.
kishi*********************************
DATA: BEGIN OF itab OCCURS 0,
vgman LIKE febmka-vgman,
valut LIKE febep-valut,
kwbtr(13) TYPE c,
chect_kf LIKE febmkk-chect_kf,
END OF itab.
kishi)(_()00-8-09
DATA: BEGIN OF messtab OCCURS 0.
INCLUDE STRUCTURE bdcmsgcoll.
DATA: END OF messtab.
DATA: BEGIN OF messtab1 OCCURS 0.
INCLUDE STRUCTURE messtab.
DATA: END OF messtab1.
DATA : BEGIN OF int_count OCCURS 0.
INCLUDE STRUCTURE alsmex_tabline.
DATA : END OF int_count.
DATA: c_tcode LIKE sy-tcode VALUE 'FF67',
c_upd LIKE ctu_params-updmode VALUE 'S',
c_def_size LIKE ctu_params-defsize VALUE 'X'.
*VALUES FOR STARTING COLUMNS AND ROWS IN THE EXCEL SHEET
DATA : c_begcol TYPE i VALUE '1',
c_begrow TYPE i VALUE '1',
*DATA IS ENDED AT THE 13TH COLUMN IN THE EXCELSHEET
c_endcol TYPE i VALUE '13',
*LAST ROW IN THE EXCEL SHEET
c_endrow TYPE i VALUE '65536',
c_path(3) TYPE c VALUE 'C:\'.
*Field Symbols
FIELD-SYMBOLS: <fs>.
SELECTION SCREEN PARAMETERS
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p_file LIKE rlgrap-filename DEFAULT
'C:\ ',
*This is the path for downloading file
P_FNAME2 LIKE RLGRAP-FILENAME ,
c_mode LIKE ctu_params-dismode DEFAULT 'N'.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
*F4 HELP FOR FILE SELECTION
PERFORM validate_input_file.
START-OF-SELECTION.
CLEAR gu_upload.
REFRESH gu_upload.
UPLOAD THE DATA FROM FLAT FILE TO INTERNAL TABLE
PERFORM file_upload.
iopt-dismode = c_mode.
iopt-updmode = c_upd.
iopt-defsize = c_def_size.
POPULATE THE DATA THROUGHSCREENS
PERFORM bdc_upload.
END-OF-SELECTION.
*DISPLY THE ERROR RECORDS
PERFORM DISPLAY-DATA.
FORM file_upload *
FORM file_upload.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = c_begcol
i_begin_row = c_begrow
i_end_col = c_endcol
i_end_row = c_endrow
TABLES
intern = int_count
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
LOOP AT int_count.
ASSIGN COMPONENT int_count-col OF STRUCTURE gu_upload TO <fs>.
IF sy-subrc NE 0.
EXIT.
ENDIF.
<fs> = int_count-value.
AT END OF row.
APPEND gu_upload.
CLEAR gu_upload.
ENDAT.
ENDLOOP.
*kishhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
LOOP AT gu_upload.
itab-vgman = gu_upload-vgman.
itab-valut = gu_upload-valut.
itab-kwbtr = gu_upload-kwbtr.
itab-chect_kf = gu_upload-chect_kf.
APPEND itab.
ENDLOOP.
*kishiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
ENDFORM. "file_upload
*& Form BDC_UPLOAD
FORM bdc_upload.
LOOP AT gu_upload.
CLEAR bdcdata.
REFRESH bdcdata.
*& POPULATE THE DATA FOR FIRST SCREEN
perform bdc_dynpro using 'SAPMF40K' '0101'.
perform bdc_field using 'BDC_CURSOR'
'FEBMKA-JNAME'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'FEBMKA-BUKRS'
'IN14'.
perform bdc_field using 'FEBMKA-HBKID'
gu_upload-hbkid.
perform bdc_field using 'FEBMKA-HKTID'
gu_upload-hktid.
perform bdc_field using 'FEBMKA-AZNUM'
gu_upload-aznum.
perform bdc_field using 'FEBMKA-AZDAT'
gu_upload-azdat.
perform bdc_field using 'FEBMKA-SSALD'
gu_upload-ssald.
perform bdc_field using 'FEBMKA-ESALD'
gu_upload-esald.
perform bdc_field using 'FEBMKA-BUDTM'
gu_upload-budtm.
perform bdc_field using 'FEBMKA-MNAM1'
gu_upload-mnam1.
perform bdc_field using 'FEBMKA-JNAME'
gu_upload-jname.
*& POPULATE THE DATA FOR SECOND SCREEN
DATA : fnam(20) TYPE c,
idx TYPE c.
MOVE 1 TO idx.
LOOP AT itab.
PERFORM bdc_dynpro USING 'SAPMF40K' '8000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'FEBMKK-CHECT_KF(03)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
CONCATENATE 'FEBMKA-VGMAN(' idx ')' INTO fnam.
PERFORM bdc_field USING fnam
itab-vgman.
CONCATENATE 'FEBEP-VALUT(' idx ')' INTO fnam.
PERFORM bdc_field USING fnam itab-valut.
CONCATENATE 'FEBMKA-KWBTR(' idx ')' INTO fnam.
PERFORM bdc_field USING fnam itab-kwbtr.
CONCATENATE 'FEBMKK-CHECT_KF(' idx ')' INTO fnam.
PERFORM bdc_field USING fnam itab-chect_kf.
idx = idx + 1.
ENDLOOP.
*perform bdc_dynpro using 'SAPMF40K' '8000'.
*perform bdc_field using 'BDC_CURSOR'
'FEBMKK-CHECT_KF(01)'.
*perform bdc_field using 'BDC_OKCODE'
'/00'.
*perform bdc_field using 'FEBMKA-VGMAN(01)'
'z001'.
*perform bdc_field using 'FEBEP-VALUT(01)'
'2007/04/26'.
*perform bdc_field using 'FEBMKA-KWBTR(01)'
' 5000-'.
*perform bdc_field using 'FEBMKK-CHECT_KF(01)'
'1122'.
perform bdc_dynpro using 'SAPMF40K' '8000'.
perform bdc_field using 'BDC_CURSOR'
'FEBMKK-CHECT_KF(01)'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
*& POPULATE THE DATA FOR FOURTH SCREEN
perform bdc_dynpro using 'SAPMF40K' '0101'.
perform bdc_field using 'BDC_CURSOR'
'FEBMKA-BUKRS'.
perform bdc_field using 'BDC_OKCODE'
'=BUCH'.
perform bdc_field using 'FEBMKA-BUKRS'
'IN14'.
perform bdc_field using 'FEBMKA-HBKID'
gu_upload-hbkid.
perform bdc_field using 'FEBMKA-HKTID'
gu_upload-hktid.
perform bdc_field using 'FEBMKA-AZNUM'
gu_upload-aznum.
perform bdc_field using 'FEBMKA-AZDAT'
gu_upload-azdat.
perform bdc_field using 'FEBMKA-SSALD'
gu_upload-ssald.
perform bdc_field using 'FEBMKA-ESALD'
gu_upload-esald.
perform bdc_field using 'FEBMKA-BUDTM'
gu_upload-budtm.
perform bdc_field using 'FEBMKA-MNAM1'
gu_upload-mnam1.
perform bdc_field using 'FEBMKA-JNAME'
gu_upload-jname.
*perform bdc_dynpro using 'SAPMF40K' '0101'.
*perform bdc_field using 'BDC_OKCODE'
'/EENDE'.
*perform bdc_field using 'BDC_CURSOR'
'FEBMKA-BUKRS'.
perform bdc_dynpro using 'SAPMF40K' '0101'.
perform bdc_field using 'BDC_OKCODE'
'/EABBR'.
perform bdc_field using 'BDC_CURSOR'
'FEBMKA-BUKRS'.
*& USING THE CALL TRANSACTION
PERFORM call_transaction.
CLEAR BDCDATA. "<--- Add here
REFRESH BDCDATA. "<--- Add here
ENDLOOP.
ENDFORM. " BDC_UPLOAD
*& Form VALIDATE_INPUT_FILE
FORM validate_input_file.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_path = ' c:\ '
mask = ',.txt,.*.'
mode = 'O'
title = 'Upload '
IMPORTING
filename = p_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
IF sy-subrc <> 0 AND sy-subrc <> 3.
MESSAGE e100(zm) WITH text-007.
ENDIF.
ENDFORM. " VALIDATE_INPUT_FILE
Start new screen *
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "bdc_dynpro
Insert field *
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. "bdc_field
*& Form CALL_TRANSACTION
FORM call_transaction.
DATA: l_index LIKE sy-tabix.
CALL TRANSACTION c_tcode USING bdcdata
MODE c_mode
MESSAGES INTO messtab.
*POPULATE THE ERROR RECORDS INTO INTERNAL TABLE
IF SY-SUBRC NE 0.
GU_DOWNLOAD-HBKID = GU_UPLOAD-HBKID.
GU_DOWNLOAD-HBKID = GU_UPLOAD-HBKID.
GU_DOWNLOAD-HKTID = GU_UPLOAD-HKTID.
GU_DOWNLOAD-AZNUM = GU_UPLOAD-AZNUM.
GU_DOWNLOAD-AZDAT = GU_UPLOAD-AZDAT.
GU_DOWNLOAD-ESALD = GU_UPLOAD-ESALD.
GU_DOWNLOAD-SSALD = GU_UPLOAD-SSALD.
GU_DOWNLOAD-BUDTM = GU_UPLOAD-BUDTM.
GU_DOWNLOAD-MNAM1 = GU_UPLOAD-MNAM1.
GU_DOWNLOAD-JNAME = GU_UPLOAD-JNAME.
GU_DOWNLOAD-VGMAN = GU_UPLOAD-VGMAN.
GU_DOWNLOAD-VALUT = GU_UPLOAD-VALUT.
GU_DOWNLOAD-KWBTR = GU_UPLOAD-KWBTR.
GU_DOWNLOAD-CHECT_KF = GU_UPLOAD-CHECT_KF.
APPEND GU_DOWNLOAD.
*DISPLAY THE PROGRESS OF PROCESS
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 0
TEXT = 'Downloading is in process'.
*DOWNLOADING THE ERROR RECORD
LV_OUT = P_FNAME2.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = LV_OUT
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = GU_DOWNLOAD.
ENDIF.
IF NOT messtab[] IS INITIAL.
PERFORM format_message.
ENDIF.
ENDFORM. " CALL_TRANSACTION
*& Form DISPLAY-DATA
FORM display-data.
SKIP.
WRITE: 'SY-SUBRC' , sy-subrc.
ENDFORM. " DISPLAY-DATA
FORM FORMAT_MESSAGE *
FORM format_message.
DATA: l_msg(100),
l_index LIKE sy-tabix.
LOOP AT messtab.
READ TABLE gu_upload INDEX l_index.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = messtab-msgid
lang = sy-langu
no = messtab-msgnr
v1 = messtab-msgv1
v2 = messtab-msgv2
v3 = messtab-msgv3
v4 = messtab-msgv4
IMPORTING
msg = l_msg
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
WRITE:/ l_msg.
ENDLOOP.
WRITE:/ l_msg.
ENDFORM.
Message was edited by:
vijayd duvvadaHi,
First , keep the mode "E" and check the debugger , you can exactly see where the error is and let me know, what error and where it is stoping.
By your coding, i suppose to think that, its proble in the amount (currency). When ever you are try to pass the value, and value is not there in upload file or data is mismatch, the call transaction will fail in mode 'A' and succesful in mode 'N'.
In that situation use this before the currecny field.
IF NOT FEBMKA-SSALD IS INTIAL.
perform bdc_field using 'FEBMKA-ESALD'
gu_upload-esald.
ENDIF.
tHANKS
Manju
Maybe you are looking for
-
My Magsafe has been working for almost a year now, but all of a sudden, it stopped working a few days ago. I've been trying to use different AC plugins like the "Duck head" and the long cord one that I don't know what the name is to. As I said in the
-
Successfully completed a many menued slideshow. On screen colour and clarity is great. When burnt to DVD, quality is quite terrible. Contrast is too high and sharpness and detail is reduced. Looks like the rendering from computer to DVD is loosing to
-
Hello, I need to install an SSL certificate on my CSS but have no access to an FTP/SFTP server. Can the import be accomplished via the console or some other means? Thanks, -Adam
-
Fuzzy logic controller for DC motor
Hello guys! Can anyone help me out in giving inputs to fuzzy controller which has two input member function Error and Change in error. Is there any tool which can store the previous error and compare it with present error which gives the chane in err
-
I have a macbook pro and I want to use my canon firewire digital video camera on yahoo chat. When I sign on to chat and attempt to use a camera, the system automatically defaults to the built in camera on the notebook. Can I override that default?