34
©Centre for Development of Advanced Computing http://nsdg.gov.in SSDG Connector s in .Net

©Centre for Development of Advanced Computing SSDG Connector s in.Net

Embed Size (px)

Citation preview

Page 1: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

SSDG Connector sin

.Net

Page 2: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

SAP GenericApplication Specific

SPGeneric Application Specific

Page 3: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

SAP Generic Connectors

Page 4: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Generic SAP API

SubmitRequest() - This function should be used for making initial request to SSDG for availing a service.DocumentPoll() – This function is used to check the status of the request which has been submitted through asynchronous mode.DocumentDelete() –This function is used to delete the request and response which have already been fulfilled successfully.DocumentList() – It helps in getting the status of all the requests submitted to SSDG during a particular period.

Note: Only SubmitRequest() is used for Synchronous as well as asynchronous Requests while all the other functions will use Synchronous based requests only.

Page 5: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Generic Responses

Success Status –Actual Response

Failed Status

Resubmit

Page 6: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

SAP Generic Connector Elements

Element Name : ClassValue

Data Type : String

Mandatory : YES (for all functions)

Description :Service ID of the service registered at gateway.

Page 7: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

SAP Generic Connector Elements

Element Name :TransactionId

Data Type : String

Mandatory : Optional (Depends on the SAP Application Specific Connector)

Description :Used by the SAP application to club multiple Submit Request into single transaction.

Page 8: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

SAP Generic Connector Elements

Element Name : BodyContent

Data Type : XMLElement[ ]

Mandatory : YES (for SubmitRequest() )

Description : Payload or body content. SAP and SP must adhere to the schema of payload.

Page 9: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

SAP Generic Connector Elements

Element Name : CorrelationID

Data Type : String (32 bit character value)

Mandatory : YES (for functions DocumentPoll(), DocumentDelete() )

Description : Unique identifier of the message received from gateway.

Page 10: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

SAP Generic Connector Elements

Element Name : ResponseMode

Data Type : Enum

Mandatory : YES (for all functions)

Description :Response mode specifies the type of communication needed by Service.

ASYNCHRONOUSSYNCHRONOUS

Page 11: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

SAP Generic Connector Elements

Element Name : SenderID

Data Type : String

Mandatory : YES(for SubmitRequest() and DocumentList() methods only)

Description :User Id of SAP for authentication at gateway.

Page 12: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

SAP Generic Connector Elements

Element Name :Password

Data Type : String

Mandatory : YES (Required in SubmitRequest() and DocumentList() methods only)

Description :Password to authenticate SAP.

Page 13: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

SAP Generic Connector Elements

Element Name :TargetEndpoint

Data Type : String

Mandatory : YES (for all functions)

Description :URL of the Gateway.

Page 14: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

SAP Generic Connector Elements

Element Name : AuthMode

Data Type : Enum

Mandatory : YES ( Required in SubmitRequest() and DocumentList() methods only. )

Description : Indicates how the SAP will be authenticated to gateway. There are three types of Authentication Modes

Clear -AuthMode.ClearSHA-1-AuthMode.SHA1;W3C signed-AuthMode.W3CSigned

Page 15: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

SAP Generic Connector Elements

Element Name : SignedAuthentication

Data Type : Enum

Mandatory : OptionalDescription : Indicates whether the payload

should be signed or not.False –indicates payload should not be signed.

True-SAP will sign payload and signature verification of payload should be done by SP.

Page 16: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Sequences

Page 17: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Synchronous Submit Request from

SAP to SP

Page 18: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Synchronous Submit RequestSynchronous Submit Request from SAPfrom SAP

SAP (portal) Gateway SP( Back off )

synSubmitRequest()

Synchronous Response

Synchronous Response

SubmitRequest()

ConnectorInterface inter = new ConnectorInterface ( );

//Optional Field set by Client

inter.TransactionId = "12345678912345678912345678912345";

inter .CorrelationID = "";

//Type of Service Requested i.e. Synchronous

inter.ResponseMode = ResponseMode.Synchronous;

//Valid Service Class

inter.ClassValue = "http://127.0.0.1/22";

//Address of SSDG

inter.TargetEndPoint="http://nsdg.staging.cdacmumbai.in/gateway/services/NSDGService";

//Authentication Details received after registration of SAP

inter.AuthMode = AuthMode.Clear;

inter.SenderID = "SAP130720081454";

inter.Password = "[B@13a87a0";

XmlElement[] body =Body received from SAP Application Specific Connector ;

inter.BodyContent = body;

//Calling of SSDG through Generic Connector API

ConnectorInterface.SubmitRequest(ref inter);

Page 19: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Synchronous Response for Synchronous submit request

Gateway SP Generic Connector

SP Application Specific Connector

synSubmitRequest()

Sending Submit ResponseSending Submit Response

public void synSubmitRequest ( ref SPInterface interfaceSP )

{

//Retrieving the Values received from SAP through SSDG

XmlElement[] bodyArr = new XmlElement[1];

bodyArr = interfaceSP .Body;

//Processing of Body is done by SP application Specific Connector

//Business logic of body processing will come here

interfaceSP.Body[0] = bodyArr[0];

interfaceSP.SubmissionStatus = "response";

}

{

//If the content received in the body is incorrect. Also set the

body as per schema of Error giving the reason for the error.

setProperties .SubmissionStatus = "error";

}

SubmitRequest()

Page 20: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Submit Response send to SAP

SAP (portal) Gateway SP( Back off )

synSubmitRequest()

Synchronous Response /ErrorSynchronous Response/Error

SubmitRequest()

Page 21: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Submit Response

SAP (portal) Gateway

Synchronous Response

//If Status is error

string errorCode = inter .ErrorCode;

string[] errorList=new string[1];

XmlElement[] bodyArr = new XmlElement[1];

errorList = inter .ErrorList;

string error=null;

if ( errorList != null )

{ error = errorList [ 0 ]; }

//Receiving Result

string status= inter.SubmissionStatus;

//if status is response

string corrID=inter.CorrelationID;

string classID = inter.ClassValue;

Page 22: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Synchronous SUBMIT_REQUEST

SAP (portal) Gateway SP( Back off )

Synchronous Submit Request

Synchronous Response

Synchronous Response

Synchronous Submit Request

Page 23: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

ASynchronous Submit Request from

SAP to SP

Page 24: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Asynchronous Submit Request from SAP

SAP (portal) Gateway SP( Back off )

asynSubmitRequest()

Submit Acknowledgement/ ErrorSubmit Acknowledgement/ Error

SubmitRequest()

ConnectorInterface inter = new ConnectorInterface ( );

//Optional Field set by Client

inter.TransactionId = "12345678912345678912345678912345";

inter .CorrelationID = "";

//Type of Service Requested i.e. Asynchronous

inter.ResponseMode = ResponseMode.ASynchronous;

//Valid Service Class

inter.ClassValue = "http://127.0.0.1/22";

//Address of SSDG

inter.TargetEndPoint="http://nsdg.staging.cdacmumbai.in/gateway/services/NSDGService";

//Authentication Details received after registration of SAP

inter.AuthMode = AuthMode.Clear;

inter.SenderID = "SAP130720081454";

inter.Password = "[B@13a87a0";

XmlElement[] body =Body received from SAP Application Specific Connector;

inter.BodyContent = body;

//Calling of SSDG through Generic Connector API

ConnectorInterface.SubmitRequest(ref inter);

Page 25: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Submit Acknowledgement send to SAP

SAP (portal) Gateway SP( Back off )

asynSubmitRequest()

Submit Acknowledgement/ ErrorSubmit Acknowledgement/ Error

SubmitRequest()

string status= inter.SubmissionStatus;

//if status is acknowledgement

//Process the ConnectorInterface object

string corrID=inter.CorrelationID;

string classID = inter.ClassValue;

string endPoint = inter .TargetEndPoint;

//If Status is error

string errorCode = inter .ErrorCode;

string[] errorList=new string[1];

XmlElement[] bodyArr = new XmlElement[1];

errorList = inter .ErrorList;

string error=null;

if ( errorList != null )

{ error = errorList [ 0 ]; }

Page 26: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Submit Poll from SAP

SAP (portal) Gateway SP( Back off )

Document Poll

Submit Response /Submit Acknowledgement

Submit Response /Submit Acknowledgement

DocumentPoll()

ConnectorInterface inter = new ConnectorInterface ( );

inter.TransactionId = "";

//It should contain the value as received in Asynchronous SubmitRequest

inter.CorrelationID = "34E17E40952F4EAEB37E7B1FD7BA67EF";

//Valid Service class

inter.ClassValue = "http://127.0.0.1/22";

//End Point Url of the Gateway where DocumentPoll can be done

inter.TargetEndPoint="http://nsdg.staging.cdacmumbai.in/gateway/services/NSDGService";

inter.DocumentPoll ( ref inter )

Page 27: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Submit Response Component of SP

SP Generic Connector

SP Application Specific Connector

public void SPResponse ( ref SPInterface interfaceSP )

{

XmlElement[] bodyArr = new XmlElement[1];

interfaceSP.CorrelationID="Value stored in DB from asynchronous request";

interfaceSP.ClassValue=" Value stored in DB from asynchronous request ";

interfaceSP.TargetEndPoint="Address of SSDG";

//Create response in SP Application Specific connector code and write the business logic to store it in bodyArr element

interfaceSP.Body[0] = bodyArr[0];

interfaceSP.SubmissionStatus = "response";

SPImplSoapSoap callResponse = new SPImplSoapSoap ("path of Generic Connector");

callResponse .submitResponse ( ref interfaceSP );

}

Page 28: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Submit Acknowledgement / Submit Acknowledgement / Submit Response send to SAP from SPSubmit Response send to SAP from SP

SAP (portal) Gateway SP( Back off )

Submit Poll

Submit Response /Submit AcknowledgementSubmit Response /Submit

Acknowledgement

DocumentPoll()

//Actual Response

//Can be retrieved for Business Error and response.

if ( inter.BodyContent != null )

{

element = inter .BodyContent

}

//If Status is error

string errorCode = inter .ErrorCode;

string[] errorList=new string[1];

errorList = inter .ErrorList;

string error=null;

if ( errorList != null )

{

error = errorList [ 0 ];

}

//Receiving Result

string status= inter.SubmissionStatus;

/if status is acknowledgement, it means response is still awaited from SSDG.

string corrID=inter.CorrelationID

//Target End point for the Gateway

string responseEndPoint=inter.TargetEndPoint;

string classId = inter .ClassValue

Page 29: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Asynchronous CommunicationAsynchronous Communication

SAP (portal) Gateway SP( Back off )

Asynchronous Submit Request

Submit poll

Submit ACKSubmit Response

Submit poll

RESPONSE

Asynchronous Submit Request

Submit ACK

Submit ACK

Submit ACK

Page 30: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in©Centre for Development of Advanced Computinghttp://nsdg.gov.in

List Request from SAP List Request from SAP

SAP (portal) Gateway

List Response

DocumentList()

ConnectorInterface inter = new ConnectorInterface ( );

inter .CorrelationID = "";

//Type of Details Requested i.e. Asynchronous or Synchronous

inter .ResponseMode = ResponseMode.Asynchronous;

inter.ClassValue = "http://192.168.0.140/133";

//Address of SSDG

inter .TargetEndPoint = "http://nsdgstaging.cdacmumbai.in/gateway/services/NSDGService";

//Authentication Details received after registration of SAP

inter .AuthMode = AuthMode .Clear;

inter .SenderID = "SAP1238072453839";

inter .Password = "[B@1f19353";

//Prepare Body as List request Schema provided in Manual Appendix

inter.BodyContent = body;

//Calling of SSDG through Generic Connector API

ConnectorInterface .DocumentList (ref inter );

Page 31: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in©Centre for Development of Advanced Computinghttp://nsdg.gov.in

List Response From SSDG to SAPList Response From SSDG to SAP

SAP (portal) Gateway

List Response

//Receiving Result

string status = inter .SubmissionStatus;

//if status is response

string corrID=inter.CorrelationID;

string classID = inter .ClassValue;

XmlElement [ ] element=new XmlElement[1] ;

if ( inter .BodyContent != null )

{

//Receive result as per schema mentioned in Manual

element = inter .BodyContent;

}

//in case of error

string errorCode = inter .ErrorCode;

string[] errorList=new string[1];

errorList = inter .ErrorList;

string error=null;

if ( errorList != null )

{

error = errorList [ 0 ];

}

DocumentList()

Page 32: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Delete Request from SAP Delete Request from SAP

SAP (portal) Gateway

Delete Response / Delete Acknowledgement

DocumentDelete()

ConnectorInterface inter = new ConnectorInterface ( );

inter.TransactionId = "12345678912345678912345678912345";

//or give response as it is optional field

inter.TransactionId = "";

//It should contain the value as received in Asynchronous SubmitRequest

inter.CorrelationID = "34E17E40952F4EAEB37E7B1FD7BA67EF";

//Valid Service Class

inter.ClassValue = "http://127.0.0.1/22";

//End Point Url of the Gateway where DocumentDelete can be done

inter.TargetEndPoint = “http://nsdg.staging.cdacmumbai.in/gateway/services/NSDGService";

inter.DocumentDelete ( ref inter );

Page 33: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Delete Response From SSDG to SAPDelete Response From SSDG to SAP

SAP (portal) Gateway

Delete Response / Delete Acknowledgement

//Receiving Result

string status= inter.SubmissionStatus;

//if status is response

string corrID=inter.CorrelationID;

//Target End point for the Gateway

string responseEndPoint=inter.TargetEndPoint;

string classId = inter .ClassValue;

//If Status is error

string errorCode = inter .ErrorCode;

string[] errorList=new string[1];

errorList = inter .ErrorList;

string error=null

if ( errorList != null )

{

error = errorList [ 0 ];

}

DocumentDelete()

Page 34: ©Centre for Development of Advanced Computing  SSDG Connector s in.Net

©Centre for Development of Advanced Computinghttp://nsdg.gov.in

Thank You