How to implement Exception Handling for soap to RFC sync interface...
Dear Experts,
we have an interface like soap to Rfc sync, already develepment is done and moved to production. but we are getting some quatitity is greater than item then it is throwing an error below. i want to handle that exception in XI level.
please guide i am not found any document for this type of interface.
Please suggest what can i do for this. Please share me the screen shot for this.
Error Log:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Request Message Mapping
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Category>Application</SAP:Category>
<SAP:Code area="RFC_ADAPTER">APPLICATION_ERROR</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText />
<SAP:ApplicationFaultMessage namespace="urn:sap-com:document:sap:rfc:functions">Z_DEPOT_DISPATCH.Exception</SAP:ApplicationFaultMessage>
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
<rfc:Z_DEPOT_DISPATCH.Exception xmlns:rfc="urn:sap-com:document:sap:rfc:functions"><Name>RFC_ERROR_SYSTEM_FAILURE</Name><Text>Delivery quantity is greater than target quantity 10.000 MT</Text><Message><ID>VL</ID><Number>363</Number></Message><Attributes><V1>10.000</V1><V2>MT</V2></Attributes></rfc:Z_DEPOT_DISPATCH.Exception>
Regards,
Kiran Polani
Dear All,
This is clearly soap to rfc interface and we are using currently PI 7.0. This is a validation of BAPI, BAPI is not accepting the field of "Quantity is some value". The quatity is greater than the amount BAPI is throwing an error like "APPLICATION_ERROR". Is it possbile to validate in XI Level.
Soap --> XI--> BAPI(Request)
BAPI--> XI-->Soap(Response)( in this step what ever message return by bapi those error message not getting 3 rd party application).
here by catching that error and i should throw to 3rd party application.
is it possible to handle this or not.?
If it is possible in Fault Mapping/Fault message type please give me the steps or document for me.
I am new for fault mapping?
Please help me on this.
Regards,
Kiran Polani
Similar Messages
-
How to implement Exception Handling error in IDoc to File and RFC to File
Hi,
We are implementing the two below scenarios :
1. IDOC to File
2. RFC to File
We have to implement the Exception Handling for the above two cases. Kindly could you provide the inputs to implement the Exception Handling for the above two cases.
Please provide the precious inputs to implement this.
Thanks,
RameshHi Ramesh,
The exception handling for idocs
http://help.sap.com/saphelp_nw04/helpdata/en/dc/6b7f1543d711d1893e0000e8323c4f/frameset.htm
Exception handling in File to IDoc Scenario
For RFCs
Re: Passing SAP Exceptions to a sync SOAP Call
Error Handling when using RFC
Exception Handling while Calling RFC - BPM
handle exceptions in remote function modules
Regards,
Prateek -
How to create Integration Flow for SOAP to RFC scenario?
Hello Friends,
We have Single Stack SAP PO 7.3 EHP 1 SP08 AS Java in our environment. We have a scenario where a RFC needs to be made available as SOAP Web Service. So we are using SOAP Sender Adapter and RFC Receiver adapter. We want to build this scenario with NWDS (Eclipse). We have imported the RFC and created data types, message types, service interfaces etc. But we are facing trouble in creating the Integration flow.
Please let us know if we need to create only one integration flow or need to create two integration flows (one for request and one for response) and what all configuration would be needed in Business Component and Communication Channel.
A step by step guide would be highly appreciated.
Best Regards,
Shreyansh ShahHi Shreyansh,
Found these links for you. Have a look at them and go through them. They should help you.
https://help.sap.com/saphelp_nw73ehp1/helpdata/en/95/8969b91d50439296dbd0a8ded93da7/content.htm
Understanding Integration Flow - Process Integration Tools (Eclipse-Based) - SAP Library
https://help.sap.com/saphelp_nw73ehp1/helpdata/en/e4/c9be6beab94f0b932e3c67f50e0093/content.htm
Regards,
Jannus Botha -
Best Practice for Implementing Exception Handling in BPEL
Hi All,
what is the best practice and the approach to follow Exception Handling in BPEL.
1) Do we need to implement Exception Handling in BPEL as we do in Java, means
method 3 throws error to method 2 (if any) and
method 2 throws error to method 1 (if any) and
finally method 1 throws error to the main Class.
If we replicate the above scenario to BPEL
In BPEL main Scope have Custom Fault, Catch ALL
Each Invoke is surrounded by a Scope Activity with Remote Fault, Binding Fault & Custom Fault
and follow the paradigm of Java, assuming we have Inner Scopes
[ OR ]
2) In BPEL main Scope have all exceptions defined like
Remote Fault,
Binding Fault,
anyOther System Fault (selectionFailure / forcedTermination),
Custom Fault (if required) and
CatchALL
and also
each Invoke is surrounded by a Scopes Acitivity with Custom Fault (business fault) exception Handling
I feel 1st one may not be a good practice, may be i am wrong...
Any Suggestions from experts.
Thanks in Advance
anvv sharmaHi-
In you can create different scope and use catch branch to catch binding, remote, custom faults, business faults etc. If an error happens in a scope it will not move to the next scope( eg: you have 3 scope, error occured in 2nd scope then it will not propogate to the 3rd scope. One thing to be noticed here is your transaction in the 1st scope doesnt gets commited when an error happens in 2d scope).
You can have a catch all to catch error which are not being caught at catch level. So if any error happens which is not defined in catch block then then it will be caught in catch all branch.
Edited by: 333333 on Apr 12, 2011 9:39 AM -
Exception Handling for many bean objects of a container class in a JSP page
Hello,
I have on container bean class. In this container class, there are several others class objects and the getter methods to get these objects out to the JSP pages.
I have one JSP page which will use different objects in the container class object through the getter methods of the container class.
My question is how to implement the exception handler for all the objects in the container so that the JSP page can handle all exceptions if occurrs in any object in the container?
Please give me some suggestions. Thanks
TuThanks for your reply.
Since the container is the accessor class, I have no other super class for this container class, I think I will try the try catch block in the getter methods. -
Never implemented exception handling in Stored Procedures
I have lots of stand alone stored procedures callled from .NET 20 programs that follow the following pattern. They runn against Oracle 10.2 on Win2003. The only deviiation is a couple where I insert to temptables. I specify a parameter for messages but don't know the best way to implement for Oracle as well as any tips on ODP.NET/oracle interactions error handling.
1. Is it recommended to implement exception handling in With Clauses?
2. If there is an exception in one cursor's SQL, how do I still execute the second?
3. Is it best in some circumstances to pass a null back to client and check for null in program?
From .NET programs I have run into a couple of problems.
4. TNS packet failure.
Anyways any suggestions or experiences are welcome.
CREATE OR REPLACE PROCEDURE GET_SALES_DATA
, p_businessdate in date
, p_message out varchar2
, p_rcSales out sys_refcursor
, p_rInventory out sys_refcursor
) is
open p_rcSales for
with somedata as (select ...)
, someMoreData as (selct ...)
-- Main select
Select * from somedata sd inner join somemoredata smd on smd.key = sd.key;
open p_rcInventory for
with somedata as (select ...)
, someMoreData as (selct ...)
-- Main select
Select * from somedata sd inner join somemoredata smd on smd.key = sd.key;
-- CODE NOT IMPLEMENTED
-- exception
-- when TOO_MANY_ROWS then select 'Error handling for future implementations' into p_message from dual ;
-- when NO_DATA_FOUND then select 'Error handling for future implementations. No data' into p_message from dual;
-- when others then raise_application_error(-20011,'Unknown Exception in GET_SALES_DATA Function');
-- WHEN invalid_business_date then select 'Invalid: Business date is in the current work week.' into p_message from dual ;
END GET_SALES_DATA;Pseudocode'ish because Module level variables and properties have not been defined here for brevity.
Public Class WebPage1
PAge_Load
GetData
End Class Data Access Layer
Public Class DAL
Public Sub GetOracleData()
Dim conn As OracleConnection
Try
conn = New OracleConnection
Catch ex As Exception
Throw ex
End Try
Dim cmd As New OracleCommand
With cmd
conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("MyConnectionString").ToString
cmd.CommandText = DATABASE.GetSalesData
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = conn
End With
cmd.Connection = conn
Dim oparam As OracleParameter
oparam = cmd.Parameters.Add("p_businessdate", OracleDbType.Date)
oparam.Value = BusinessDate.ToString("dd-MMM-yy")
oparam = cmd.Parameters.Add("p_message", OracleDbType.Varchar2, ParameterDirection.Output)
oparam = cmd.Parameters.Add("p_rc_inven_csv", OracleDbType.RefCursor, ParameterDirection.Output)
oparam = cmd.Parameters.Add("p_rcSales", OracleDbType.RefCursor, ParameterDirection.Output)
oparam = cmd.Parameters.Add("p_rcInventory", OracleDbType.RefCursor, ParameterDirection.Output)
Dim Adapter As New OracleDataAdapter(cmd)
Try
Adapter.TableMappings.Add("Table", Sales)
Adapter.TableMappings.Add("Table1", Inventory)
Adapter.Fill(dsOracleData)
Catch ex As OracleException
HandleError("Exception Retrieving Oracle Data", ex, MethodInfo.GetCurrentMethod.Name, True)
Finally
If conn.State = ConnectionState.Open Then
conn.Close()
End If
End Try
dbMessages = cmd.Parameters("p_message").ToString
End If
arrStatusMessages.Add("Retrieved Oracle Data Successfully")
End Sub
' Original Implementation ; No longer used
Public function GetOracleData
Dim conn As New OracleConnection
conn.ConnectionString = dbconn.Connectionstring
Dim cmd As New OracleCommand
With cmd
conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("MyConnectionString").ToString
cmd.CommandText = DATABASE.GetSalesData
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = conn
End With
cmd.Connection = conn
Dim oparam As OracleParameter
oparam = cmd.Parameters.Add("p_businessdate", OracleDbType.Date)
oparam.Value = BusinessDate.ToString("dd-MMM-yy")
oparam = cmd.Parameters.Add("p_message", OracleDbType.Varchar2, ParameterDirection.Output)
oparam = cmd.Parameters.Add("p_rcSales", OracleDbType.RefCursor, ParameterDirection.Output)
oparam = cmd.Parameters.Add("p_rcInventory", OracleDbType.RefCursor, ParameterDirection.Output)
Dim Adapter As New OracleDataAdapter(cmd)
Try
Adapter.TableMappings.Add("Table", Sales)
Adapter.TableMappings.Add("Table1", Inventory)
Adapter.Fill(dsOracleData)
dim dt as datatable = dsoracledata.tables("sales")
If IsDataNull(dt) Then
_errorType = DBErrorType.NullData
End If
If isDataEmpty(dt) Then
_errorType = DBErrorType.EmptyData
End If
_hasError = False
Catch oraEx As OracleException
_ExceptionText = oraEx.Message.ToString
_errorType = DBErrorType.OracleException
#If DEBUG Then
Throw oraEx
#End If
Catch zeroEx As DivideByZeroException
_ExceptionText = zeroEx.Message.ToString
_errorType = DBErrorType.DivideByZeroException
#If DEBUG Then
Throw zeroEx
#End If
Catch oflowEx As OverflowException
_ExceptionText = oflowEx.Message.ToString
_errorType = DBErrorType.OverflowException
#If DEBUG Then
Throw oflowEx
#End If
Catch argEx As InsufficientMemoryException
_ExceptionText = argEx.Message.ToString
_errorType = DBErrorType.InsufficientMemoryException
#If DEBUG Then
Throw argEx
#End If
Catch nomemEx As OutOfMemoryException
_ExceptionText = nomemEx.Message.ToString
_errorType = DBErrorType.OutOfMemoryException
#If DEBUG Then
Throw nomemEx
#End If
Catch Ex As Exception
_ExceptionText = Ex.Message.ToString
_errorType = DBErrorType.GenericException
#If DEBUG Then
Throw Ex
#End If
Finally
If conn.State = ConnectionState.Open Then
conn.Close()
End If
End Try
End class Error Class
Public Class Errors
Public Sub ExitClass()
Return
End Sub
' 'blnWriteNow says when Error is critical and no further processing needs to be done by class, then write to event logs or text files and call exit class
' to return control back to webpage. This is my first time trying this way.
Public Sub HandleError(ByVal friendlyMsg As String, ByVal objEx As Exception, ByVal methodInfo As String, Optional ByVal blnWriteNow As Boolean = False)
If Not blnWriteNow Then Exit Sub
Dim strMessages As String
strMessages = arrStatusMessages
'Send error email
If blnSendEmails Then
SendMail("[email protected], strMessages. applicationname, " has thrown error. ")
End If
'Throw error for debugging
If blnThrowErrors Then
Throw New Exception(strMessages & vbCrLf & objEx.Message)
End If
' Write to event log and if not available (shared hosting environment), write to text log
If blnWriteNow Then
If blnWriteToEvtLog Then
If blnCanWriteToEvtLog Then 'Program has write permission to log
WriteToEventLog(strMessages, _appname, EventLogEntryType.Error, appname)
Else
If Not Directory.Exists( appPath & "\log") Then
Try
Directory.CreateDirectory( appPath & "\log")
Catch ex As Exception
arrStatusMessages.Add("Cant't write to event log or create a directory")
End Try
End If
End If
End If
End If
End Sub
End ClassI have lots of stand alone stored procedures callled from .NET 20 programs that follow the following pattern. They runn against Oracle 10.2 on Win2003. The only deviiation is a couple where I insert to temptables. I specify a parameter for messages but don't know the best way to implement for Oracle as well as any tips on ODP.NET/oracle interactions error handling.
1. Is it recommended to implement exception handling in With Clauses?
2. If there is an exception in one cursor's SQL, how do I still execute the second?
3. Is it best in some circumstances to pass a null back to client and check for null in program?
From .NET programs I have run into a couple of problems.
4. TNS packet failure.
Anyways any suggestions or experiences are welcome.
CREATE OR REPLACE PROCEDURE GET_SALES_DATA
, p_businessdate in date
, p_message out varchar2
, p_rcSales out sys_refcursor
, p_rInventory out sys_refcursor
) is
open p_rcSales for
with somedata as (select ...)
, someMoreData as (selct ...)
-- Main select
Select * from somedata sd inner join somemoredata smd on smd.key = sd.key;
open p_rcInventory for
with somedata as (select ...)
, someMoreData as (selct ...)
-- Main select
Select * from somedata sd inner join somemoredata smd on smd.key = sd.key;
-- CODE NOT IMPLEMENTED
-- exception
-- when TOO_MANY_ROWS then select 'Error handling for future implementations' into p_message from dual ;
-- when NO_DATA_FOUND then select 'Error handling for future implementations. No data' into p_message from dual;
-- when others then raise_application_error(-20011,'Unknown Exception in GET_SALES_DATA Function');
-- WHEN invalid_business_date then select 'Invalid: Business date is in the current work week.' into p_message from dual ;
END GET_SALES_DATA;Pseudocode'ish because Module level variables and properties have not been defined here for brevity.
Public Class WebPage1
PAge_Load
GetData
End Class Data Access Layer
Public Class DAL
Public Sub GetOracleData()
Dim conn As OracleConnection
Try
conn = New OracleConnection
Catch ex As Exception
Throw ex
End Try
Dim cmd As New OracleCommand
With cmd
conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("MyConnectionString").ToString
cmd.CommandText = DATABASE.GetSalesData
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = conn
End With
cmd.Connection = conn
Dim oparam As OracleParameter
oparam = cmd.Parameters.Add("p_businessdate", OracleDbType.Date)
oparam.Value = BusinessDate.ToString("dd-MMM-yy")
oparam = cmd.Parameters.Add("p_message", OracleDbType.Varchar2, ParameterDirection.Output)
oparam = cmd.Parameters.Add("p_rc_inven_csv", OracleDbType.RefCursor, ParameterDirection.Output)
oparam = cmd.Parameters.Add("p_rcSales", OracleDbType.RefCursor, ParameterDirection.Output)
oparam = cmd.Parameters.Add("p_rcInventory", OracleDbType.RefCursor, ParameterDirection.Output)
Dim Adapter As New OracleDataAdapter(cmd)
Try
Adapter.TableMappings.Add("Table", Sales)
Adapter.TableMappings.Add("Table1", Inventory)
Adapter.Fill(dsOracleData)
Catch ex As OracleException
HandleError("Exception Retrieving Oracle Data", ex, MethodInfo.GetCurrentMethod.Name, True)
Finally
If conn.State = ConnectionState.Open Then
conn.Close()
End If
End Try
dbMessages = cmd.Parameters("p_message").ToString
End If
arrStatusMessages.Add("Retrieved Oracle Data Successfully")
End Sub
' Original Implementation ; No longer used
Public function GetOracleData
Dim conn As New OracleConnection
conn.ConnectionString = dbconn.Connectionstring
Dim cmd As New OracleCommand
With cmd
conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings("MyConnectionString").ToString
cmd.CommandText = DATABASE.GetSalesData
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = conn
End With
cmd.Connection = conn
Dim oparam As OracleParameter
oparam = cmd.Parameters.Add("p_businessdate", OracleDbType.Date)
oparam.Value = BusinessDate.ToString("dd-MMM-yy")
oparam = cmd.Parameters.Add("p_message", OracleDbType.Varchar2, ParameterDirection.Output)
oparam = cmd.Parameters.Add("p_rcSales", OracleDbType.RefCursor, ParameterDirection.Output)
oparam = cmd.Parameters.Add("p_rcInventory", OracleDbType.RefCursor, ParameterDirection.Output)
Dim Adapter As New OracleDataAdapter(cmd)
Try
Adapter.TableMappings.Add("Table", Sales)
Adapter.TableMappings.Add("Table1", Inventory)
Adapter.Fill(dsOracleData)
dim dt as datatable = dsoracledata.tables("sales")
If IsDataNull(dt) Then
_errorType = DBErrorType.NullData
End If
If isDataEmpty(dt) Then
_errorType = DBErrorType.EmptyData
End If
_hasError = False
Catch oraEx As OracleException
_ExceptionText = oraEx.Message.ToString
_errorType = DBErrorType.OracleException
#If DEBUG Then
Throw oraEx
#End If
Catch zeroEx As DivideByZeroException
_ExceptionText = zeroEx.Message.ToString
_errorType = DBErrorType.DivideByZeroException
#If DEBUG Then
Throw zeroEx
#End If
Catch oflowEx As OverflowException
_ExceptionText = oflowEx.Message.ToString
_errorType = DBErrorType.OverflowException
#If DEBUG Then
Throw oflowEx
#End If
Catch argEx As InsufficientMemoryException
_ExceptionText = argEx.Message.ToString
_errorType = DBErrorType.InsufficientMemoryException
#If DEBUG Then
Throw argEx
#End If
Catch nomemEx As OutOfMemoryException
_ExceptionText = nomemEx.Message.ToString
_errorType = DBErrorType.OutOfMemoryException
#If DEBUG Then
Throw nomemEx
#End If
Catch Ex As Exception
_ExceptionText = Ex.Message.ToString
_errorType = DBErrorType.GenericException
#If DEBUG Then
Throw Ex
#End If
Finally
If conn.State = ConnectionState.Open Then
conn.Close()
End If
End Try
End class Error Class
Public Class Errors
Public Sub ExitClass()
Return
End Sub
' 'blnWriteNow says when Error is critical and no further processing needs to be done by class, then write to event logs or text files and call exit class
' to return control back to webpage. This is my first time trying this way.
Public Sub HandleError(ByVal friendlyMsg As String, ByVal objEx As Exception, ByVal methodInfo As String, Optional ByVal blnWriteNow As Boolean = False)
If Not blnWriteNow Then Exit Sub
Dim strMessages As String
strMessages = arrStatusMessages
'Send error email
If blnSendEmails Then
SendMail("[email protected], strMessages. applicationname, " has thrown error. ")
End If
'Throw error for debugging
If blnThrowErrors Then
Throw New Exception(strMessages & vbCrLf & objEx.Message)
End If
' Write to event log and if not available (shared hosting environment), write to text log
If blnWriteNow Then
If blnWriteToEvtLog Then
If blnCanWriteToEvtLog Then 'Program has write permission to log
WriteToEventLog(strMessages, _appname, EventLogEntryType.Error, appname)
Else
If Not Directory.Exists( appPath & "\log") Then
Try
Directory.CreateDirectory( appPath & "\log")
Catch ex As Exception
arrStatusMessages.Add("Cant't write to event log or create a directory")
End Try
End If
End If
End If
End If
End Sub
End Class -
How to used exception handler ?
hi,
i am facing ADF-Faces 60003 exception in my project .i searched this problem they are saying this is bugs. i am using jdeveloper 11.1.1.3 . this message is coming in pop -up.to hiding this message i am thinking to implement exception handler .
is this possible to handle ?for exception handler , i created a class which contains following code
public class Eception extends ExceptionHandler{
public Eception() {
super();
public void handleException(FacesContext facesContext, Throwable throwable,
PhaseId phaseId) {
System.out.println("------------------------------");
String error_message;
error_message = throwable.getMessage();
//check error message and handle it if you can
System.out.println("===================="+error_message+"-------------------------"+phaseId);
and also i created a text file name oracle.adf.view.rich.context.Exceptionhandler and pasted in .adf\META-INF\services folder .
but still my handleException is not triggering .i do not know why ?
is there any other step .please let me know where is problem .
thanks
Edited by: ADFORCLE on Oct 27, 2011 1:28 PMany how i am able to called my handler method.name is handler file is not correct.after resolving this problem i am facing new problem.suppose right now i am in A page. if i navigate to different pages B . all are required validation message of page B is showing .even though it's first jsf life cycle phase .
-
Implementing Exception Handling Application Block in custom web parts, event receivers
hi,
I am currently implementing try {} catch(Exception expp) { throw expp;} to handle exceptions in my intranet appln.
I have several custom web parts, event receivers, few console applciations as timer jobs etc. If i want to implement a robust exception handling what should be the approach. by searching, i saw, ms patterns n practices provides the
appln blocks.
But I think[ pls correct me if i am wrong ] those appln blocks are meant for asp.net applns ONLY.
if not, anyone has implemented those appln blocks in SP development? if yes, can anyone provide one sample / link to implement Exception Handling in SP.
help is appreciated!Hi,
Here are some articles for your reference:
Handling Error Centrally in a SharePoint Application
http://www.codeproject.com/Articles/26236/Handling-Error-Centrally-in-a-SharePoint-Applicati
Using Microsoft Enterprise Library Application Block in SharePoint
http://www.codeproject.com/Articles/21389/Using-Microsoft-Enterprise-Library-Application-Blo
Exception Handling in SharePoint
http://spmatt.wordpress.com/2012/02/01/exception-handling-in-sharepoint/
Best Regards
Dennis Guo
TechNet Community Support -
Exception handling for all the insert statements in the proc
CREATE PROCEDURE TEST (
@IncrStartDate DATE
,@IncrEndDate DATE
,@SourceRowCount INT OUTPUT
,@TargetRowCount INT OUTPUT
,@ErrorNumber INT OUTPUT
,@ErrorMessage VARCHAR(4000) OUTPUT
,@InsertCase INT --INSERT CASE INPUT
WITH
EXEC AS CALLER AS
BEGIN --Main Begin
SET NOCOUNT ON
BEGIN TRY
DECLARE @SuccessNumber INT = 0
,@SuccessMessage VARCHAR(100) = 'SUCCESS'
,@BenchMarkLoadFlag CHAR(1)
,@BenchmarkFlow INT
,@MonthYearStart DATE
,@MonthYearEnd DATE
,@StartDate DATE
,@EndDate DATE
/* Setting the default values of output parameters to 0.*/
SET @SourceRowCount = 0
SET @TargetRowCount = 0
/*Setting the Start and end date for looping */
SET @MonthYearStart = @IncrStartDate;
SET @MonthYearEnd = @IncrEndDate;
/* Setting the @InsertCase will ensure case wise insertion as this sp will load data in different tables
@InsertCase =0 means data will be inserted in the target TAB1
@InsertCase =1 means data will be inserted in the target TAB2
@InsertCase =2 means data will be inserted in the target TAB3
@InsertCase =3 means data will be inserted in the target TAB4
@InsertCase =4 means data will be inserted in the target TAB5
@InsertCase =5 means data will be inserted in the target TAB6
if @InsertCase =0
WHILE (@MonthYearStart <= @MonthYearEnd)
BEGIN
SET @StartDate = @MonthYearStart;
SET @EndDate = @MonthYearEnd;
/* Delete from target where date range given from input parameter*/
DELETE FROM TAB1
WHERE [MONTH] BETWEEN MONTH(@StartDate) AND MONTH(@EndDate)
AND [YEAR] BETWEEN year(@StartDate) and year(@EndDate)
/*Insert data in target-TAB1 */
BEGIN TRANSACTION
INSERT INTO TAB1
A,B,C
SELECT
A,BC
FROM XYZ
COMMIT TRANSACTION
SET @MonthYearStart = DATEADD(MONTH, 1, @MonthYearStart)
SELECT @TargetRowCount = @TargetRowCount + @@ROWCOUNT;
END -- End of whileloop
END TRY
BEGIN CATCH
IF @@TRANCOUNT>0
ROLLBACK TRANSACTION
SELECT @ErrorNumber = ERROR_NUMBER() ,@ErrorMessage = ERROR_MESSAGE();
END CATCH
END--End of Main Begin
I have the above proc inserting data based on parameters where in @InsertCase is used for case wise execution.
I have written the whole proc with exception handling using try catch block.
I have just added one insert statement here for 1 case now I need to add further insert cases
INSERT INTO TAB4
A,B,C
SELECT
A,BC
FROM XYZ
INSERT INTO TAB3
A,B,C
SELECT
A,BC
FROM XYZ
INSERT INTO TAB2
A,B,C
SELECT
A,BC
FROM XYZ
I will be using following to insert further insert statements
if @InsertCase =1
I just needed to know where will be my next insert statement should be fitting int his code so that i cover exception handling for all the code
MudassarHi Erland & Mudassar, I have attempted to recreate Mudassar's original problem..here is my TABLE script;
USE [MSDNTSQL]
GO
/****** Object: Table [dbo].[TAB1] Script Date: 2/5/2014 7:47:48 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[TAB1](
[COL1] [nvarchar](1) NULL,
[COL2] [nvarchar](1) NULL,
[COL3] [nvarchar](1) NULL,
[START_MONTH] [int] NULL,
[END_MONTH] [int] NULL,
[START_YEAR] [int] NULL,
[END_YEAR] [int] NULL
) ON [PRIMARY]
GO
Then here is a CREATE script for the SPROC..;
USE [MSDNTSQL]
GO
/****** Object: StoredProcedure [dbo].[TryCatchTransactions1] Script Date: 2/5/2014 7:51:33 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[TryCatchTransactions1] (
@IncrStartDate DATE
,@IncrEndDate DATE
,@SourceRowCount INT OUTPUT
,@TargetRowCount INT OUTPUT
,@ErrorNumber INT OUTPUT
,@ErrorMessage VARCHAR(4000) OUTPUT
,@InsertCase INT --INSERT CASE INPUT
WITH
EXEC AS CALLER AS
BEGIN --Main Begin
SET NOCOUNT ON
BEGIN TRY
DECLARE @SuccessNumber INT = 0
,@SuccessMessage VARCHAR(100) = 'SUCCESS'
,@BenchMarkLoadFlag CHAR(1)
,@BenchmarkFlow INT
,@MonthYearStart DATE
,@MonthYearEnd DATE
,@StartDate DATE
,@EndDate DATE
/* Setting the default values of output parameters to 0.*/
SET @SourceRowCount = 0
SET @TargetRowCount = 0
/*Setting the Start and end date for looping */
SET @MonthYearStart = @IncrStartDate;
SET @MonthYearEnd = @IncrEndDate;
/* Setting the @InsertCase will ensure case wise insertion as this sp will load data in different tables
@InsertCase =0 means data will be inserted in the target TAB1
@InsertCase =1 means data will be inserted in the target TAB2
@InsertCase =2 means data will be inserted in the target TAB3
@InsertCase =3 means data will be inserted in the target TAB4
@InsertCase =4 means data will be inserted in the target TAB5
@InsertCase =5 means data will be inserted in the target TAB6
IF @InsertCase =0
WHILE (@MonthYearStart <= @MonthYearEnd)
BEGIN
SET @StartDate = @MonthYearStart;
SET @EndDate = @MonthYearEnd;
/* Delete from target where date range given from input parameter*/
DELETE FROM TAB1
WHERE START_MONTH BETWEEN MONTH(@StartDate) AND MONTH(@EndDate)
AND START_YEAR BETWEEN year(@StartDate) and YEAR(@EndDate)
/*Insert data in target-TAB1 */
BEGIN TRANSACTION
INSERT INTO TAB1 (COL1,COL2,COL3)
VALUES ('Z','X','Y')
SELECT COL1, COL2, COL3
FROM TAB1
COMMIT TRANSACTION
SET @MonthYearStart = DATEADD(MONTH, 1, @MonthYearStart)
SELECT @TargetRowCount = @TargetRowCount + @@ROWCOUNT;
END -- End of whileloop
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION
SELECT @ErrorNumber = ERROR_NUMBER() ,@ErrorMessage = ERROR_MESSAGE();
END CATCH
PRINT @SUCCESSMESSAGE
END--End of Main Begin
GO
I am just trying to help --danny rosales
UML, then code -
How to create an handle for Miniport driver Ioctl interface?
Hi All,
I am trying to create an handle for my miniport driver Ioctl interface, but it showing the following error while opening the handle with CreateFile API.
"you are requesting IOCTL_HAL_GET_DEVICE_INFO::SPI_GETPLATFORMTYPE,
which has been deprecated. Use IOCTL_HAL_GET_DEVICE_INFO::SPI_GETPLATFORMNAME
instead"
Can anyone suggest on how to create the handle for Miniport Ioctl interface?
Thank you,
SagarHi,
I have seen this error only in GUI based apps. Maybe you are pointing to the wrong error.
Check if CreateFile returns INVALID_HANDLE_VALUE. API return value should give you more information.
Regards,
Balaji. -
Exception handling for ProjectService methods in a new 2006 DI API
Normally for other objects the Add() method returns error code and calling the GetLastError you get the description.
AddProject(Project) method of ProjectService returns ProjectParams object.
So the question is where to get the error code or what is the correct exception handling for that new methods in 2006 SDK.
Thanks for any help.
TomasHi all,
I have a sceranio :
I created the text field, text box, com bobox .etc, on new form or exist form.
When I want to bind data into UDO, i use "DataBind.setBound"
ex:"oEdit.DataBind.SetBound(True, "@SM_OMOR", "U_Room")"
Can i bind the data to exist table on B1?
ex: oEdit.DataBind.setBound(True, "OHEM", "firstName")
Plz guid !
Rgds ! -
May I use Exception Handling for validation ?
Hello All,
Can any one know about that may i use exception handling for validation in my report program.
Please if its possible then give me some Example...
Thanks.Hi Niraj,
Exception is not at all raised or handled in the given example.
There are so many document available in the SCN regarding OO ABAP you can read that.
As far as validation of a field ( Selection screen ) of course we can do that but I don't see any advantage more over it will make your code unnecessarily complex.
Regards
Bikas -
How to implement Change pointers for Purchase order - ME22N - Custom Fields
Hi Experts,
Can you please tell me how to implement - Change Pointer for Custom fields in IDOC.
I am working on IDOC - For purchase order - acknowledgements - in custom screen/tab in ME22N.
Everything is working fine according to my requirement.
All i need to know is the process of - Creating/Change - Change pointers for Custom fields.
1.How to implement change pointers for custom fields.
2.Can we maintain - Change Document - for custom fields at data element level?
P.S. - I have browsed many previous - forums before posting a new discussion.
please share your inputs...
explaining how to create/implement - change pointers for custom fields will help me .
Regards,
Karthik Rali.Hi,
To maintain Change Document for custom field:
1. Check if "Change document" checkbox is set in data element.
2. Find Change Document Object for transaction.
You can use SQL trace - ST05.
Look there for line with table CDHDR and statement insert values
(for example for transaction KA02 Change Document Object is KSTAR)
3. Regenerate update program for this Change Document Object in transaction SCDO
Change documents for z-fields schould be generated.
I am not sure about change pointers but they are configured somehow in BD61 and BD50. -
How to implement Ajax toolkit for SharePoint2013?
Hi All,
How to implement Ajax toolkit for SharePoint2013?Hi Sam,
Based on your description,
I can suggest as follows:
Use the “SharePoint AJAX 3.5 for 2010 and 2013”
solution.
Download URL:
http://sharepointajax.codeplex.com/
2.
Use the Ajax Control Toolkit with ASP.NET 4.5.
Download correct version of Ajax Control Toolkit.
http://ajaxcontroltoolkit.codeplex.com/releases/view/109918
Add AjaxControlToolkit.dll reference to your project.
Add Ajax Control Toolkit ScriptManager in master page.
Register Ajax Control Toolkit namespaces in SharePoint package Designer.
More information:
http://timscyclingblog.wordpress.com/2013/03/22/ajaxcontroltoolkit-version-7-0123-with-net-4-5/
http://sampathnarsingam.blogspot.in/2012/05/how-to-make-ajax-control-toolkit.html
Please inform me freely if you have any questions.
Thanks
Qiao Wei
TechNet Community Support
Is it possible to use version AJAX
Control Toolkit .NET 4.5 along with SharePoint 2013?
As far as I know with SharePoint we can use only version AjaxControlToolkit(3.0.30930.0). Isnt it? -
2007A: Exception handling for new ProjectService methods
Normally for other objects the Add() method returns error code and calling the GetLastError you get the description.
AddProject(Project) method of ProjectService returns ProjectParams object.
So the question is where to get the error code or what is the correct exception handling for that new methods in 2006 SDK.
Thanks for any help.
TomasHi Thomas,
For DI API services there is no return code as for the basic objects methods like Add, Update,...
The only way is then to put try/catch blocks in your code and identify the error message with the Exception.Message property (same mechanism as we have for the UI API). No way to filter them by return code.
Regards
Trinidad.
Maybe you are looking for
-
ITunes can't find iTunes folder nor create a new one
ONce I moved my iTunes folder to an external drive. Now I cannot start iTunes if my notebook is not connected to this external drive, like while on a trip. Appears like iTunes has made the external drive location as dafault location. I have even trie
-
Locale and LC_ALL [SOLVED]
Having a problem with locales regarding the LC_CTYPE, LC_MESSAGES and LC_ALL variables: core-08 etc # locale locale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or di
-
Hi All, I am using the ZipFile class in Java to parse/read data from an ascii file. But I want to implement this reading process using the RandomAccessFile and read the data randomly. But I am using a StreamTokenizer from the ZipFile to read the data
-
Dimension size in LR4 with custom ratio
Good day, I am still stuck with dimension size in LR4. If I would like to crop a picture to a certain dimension. I need to have my pictures cropped to 4600 x 3000 - so what I am doing is I enter the dimension in custom ratio, then in export I choose
-
F1 help for webdynpro Component
hi all, My requirement is when i press the F1 help on a webdynpro component a word doc should open. Is it possible to do that? if so please tell me how to do that?