API browser of generalCreditRequest450 COM module


/images/arrow_right.png IGeneralCreditRequest::SetTransport method space
Sets transport information that is the routing information going from a sender (from) over the first intermediate (via) to the receiver (to). All the involved parties are defined by GLN numbers as defined by Stiftung Refdata.

Furthermore, this method allows to define the parameters needed for sign and/or encrypt the resulting XML infoset. Therefore, read the notes about signature and encryption to get familiar with these concepts.

Important new feature: the electronic reachability of a recipient for a certain version of generalCreditRequest is kind of a chicken and egg problem. To solve this connectivity problem, the service medSRS (medical Standard Routing Service) has been created. By using the RESTful webservice method queryRHS one can find out, how and whether a specific recipient can be reached electronically. Please refer to the website medSRS.ch for getting an introduction to the topic or detailed information about the functionality of the webservice.

Instead of inputting the bstrToEan GLN literal, the query call queryRHS(glnProvider,glnRecipient) is supplied instead - cf. description of bstrToEAN below.

The usage of the patch can generate a new error code 'ERROR_RECIPIENTRHS_NOTAVAILABLE' indicating that a given recipient is not reachable. It is the decision of the calling program whether the error 'ERROR_RECIPIENTRHS_NOTAVAILABLE' will be considered or not.

space
/images/arrow_right.png Restful webservice calling syntax
[POST] /baseURL/IGeneralCreditRequest/SetTransport
[JSON input data] pIGeneralCreditRequest:
bstrFromEAN:
bstrFromPFXFile:
bstrFromPFXPassword:
bstrViaEAN:
bstrToEAN:
bstrToBinDERFile:
longValue,    //interface address
"utf8StringValue",
"utf8StringValue",
"utf8StringValue",
"utf8StringValue",
"utf8StringValue",
"utf8StringValue"
[JSON result data] pbStatus: booleanValue
 
[HTTP result status] 200 Return status 200 signals a successful method call
204 Return status 204 (noContent) signals that the end of an iteration is reached
>= 400 Return status >= 400 signals an unsuccessful function call. The returned JSON{errorCode: code, errorText:"text"} supplies the error message the same as GetAbortInfo() would do.
space
/images/arrow_right.png C/C++ calling syntax
HRESULT SetTransport( BSTR
BSTR
BSTR
BSTR
BSTR
BSTR
VARIANT_BOOL
bstrFromEAN,
bstrFromPFXFile,
bstrFromPFXPassword,
bstrViaEAN,
bstrToEAN,
bstrToBinDERFile,
*pbStatus);
[C/C++ return value] S_OK This value is returned if the function call was successful.
S_FALSE This value is returned if the end of an iteration is reached
E_name This value is returned if the function call was unsuccessful and an error exception was generated. Note that if you are using SmartPointers an exception is thrown under these conditions.
space
/images/arrow_right.png Calling argument description
[in] BSTR bstrFromEAN The GLN (former EAN) number of the sender as supplied by Stiftung Refdata
[in] BSTR bstrFromPFXFile The file name of the PFX certificate that is the private certificate of the "from" entity.
If the variable is empty or NULL then no signature is applied otherwise a signature might be applied depending on the lXMLGenerationAttributes of the GetXML method.
[in] BSTR bstrFromPFXPassword The password to open the PFX certificate. The password is only used if a PFX certificate is supplied.
[in] BSTR bstrViaEAN The GLN (former EAN) number of the first intermediate as supplied by Stiftung Refdata
[in] BSTR bstrToEAN The GLN (former EAN) number of the recipient as supplied by Stiftung Refdata
 
Patch for querying medSRS:
bstrToEAN = "queryRHS(glnProvider,glnRecipient);"

where:
  • queryRHS( ) is a literal command
  • glnProvider is the official GLN of the service with a required pattern of ^76[0-9]{11}.
    Please note that the official GLN of the service provider is needed here, which is not necessarily identical with the GLN of the sender == bstrFromEAN. The latter may be a GLN from the private sector (^2[0-9]{12}) - this is a small but crucial difference.
  • glnRecipient is the official GLN of the recipient with a required pattern of ^76[0-9]{11}.
    Please note that the official GLN of the sender is needed here, which is not necessarily identical with the GLN of the recipient == bstrToEAN. The latter may be a GLN from the private sector (^2[0-9]{12}) - this is a small but crucial difference.
Note, that the patch is neither case- nor whitespace-sensitive.
 
For example, given the input 'queryRHS(7601001302112, 7601003000078)' the medSRS system is queried whether
the recipient Suva (GLN=7601003000078) can be reached via the given intermediate (bstrViaEAN) with the standard 'carCreditRequest450' for the provider TMR (GLN=7601001302112).
 
The result of the RESTful webservice call can return 3 possible result states:
  1. the recipient (Suva) is reachable: the correct GLN bstrToEAN is returned and error state S_OK is defined
  2. the call is faulty because the parameters have a wrong format or the used intermediate (bstrViaEAN) is unknown on medSRS or the call has caused some other technical problem. In this case bstrToEAN=bstrRecipient (7601003000078 in the example) is set and the error state S_OK is defined
  3. the recipient (Suva) is not reachable: if there is the possibility of a downgrade, the RESTful call is repeated for the next lower version or bstrToEAN=bstrRecipient (7601003000078 in the example) is set and the error state 'ERROR_RECIPIENTRHS_NOTAVAILABLE' is defined.
It is the decision of the calling program whether the error 'ERROR_RECIPIENTRHS_NOTAVAILABLE' will be considered or not.
[in] BSTR bstrToBinDERFile The file name of the binary DER certificate that is the public certificate of the "to" entity.
If the variable is empty or NULL then no encryption is applied otherwise encryption might be applied depending on the lXMLGenerationAttributes of the GetXML
[out,retval] VARIANT_BOOL *pbStatus Return status of the method. If pbStatus is VARIANT_FALSE then an error occurred and GetAbortInfo should be called to retrieve the error string.
space