Friday, January 27, 2017

Integrate Oracle SOA Suite with Docusign


Docusign is a cloud application which provides facility for e signature of documents.

Though with Integration cloud services (ICS)the docusign adapter comes by default and there is direct connection available to connect your application to docusign.

However docusign also provides REST and SOAP api which can be called from your on premise applications to integrate with Oracle SOA Suite.

The related document for the API's can be found in the following link

https://www.docusign.com/developer-center/api-overview#sdk-docusign


In order to call the docusign service from SOA you first need to import the certificates of docusign into the keystore of Oracle SOA Suite.


Make sure you are importing the chain certificates as well in the keystore.

Once you have imported the certificates, you also need to pass on the security credentials to call the dcousign service.

In order to call the docusign service in SOA Composite.

Attach an OWSM policy "oracle/wss_http_token_client_policy" in the reference swimlane of Composite.

Now pass on the username and password in the SOA Composite source for the reference.

Refer to the following link on how to specify the property in the composite

http://oracle-bpel.blogspot.in/2010/06/passing-userid-and-password-credentials.html


Now here one important point is the user name.

When you login to docusign it needs three parameter

Username,Password and integrator key


While passing the Username is SOA it should be passed in following format to call docusign


[IntegratorKey]Username


which mean if your integrator key =abc
and Username = xyz

you will pass following string as password in the above property for USername

[abc]xyz



Sunday, January 15, 2017

Reverse engineering a Model is not generating the datastores


This was an annoying issue i was facing with ODI.

Whenever i try to reverse engineer the model it was not creating any thing for me.

These are the steps i followed

I created a dataserver connecting to ODI_STAGE schema

I provided the credential in definition tab of ODI data server within Physical Schema --> Oracle technologies

In the JDBC tab i provided the jbdc url to connect to my local database.

I tested the connection and this was working fine.

I create a physical schmea for the data server and there i provided Schema and workschema as Log schema which is another user in my data base.

I created the logical schema and then a model.

When i tried to reverse engineer the model it didn't generate any data store for me.

After doing some hit and trail i realised that the work schema and schema should also be the same

So went back and changed the work schema and schema in physical architeture to ODI_STAGE

Post this i was able to reverse engineer and get my records in the model

Tables created when you reverse engineer a complex file in ODI


When you test a complex file connection in ODI it creates the tables in the back end for all the complex types in your schema file.

Along with that it also contain the following table

_SNPSXMLTBL - this contains the name of all the tables created without schema prefix

_SNPSRDBIDGEN - this contains the name of all the complex type in your NXSD

Here Schema is the name of the schema that you have provided before testing the connection

ODI Learning

When ever we create a complex file in ODI and test the connection

It actually creates the table structure in the DB Schema where it is pointing to .

There is an option of defining s=Schema in ODI complex file JDBC String

jdbc:snps:complexfile?f=C:\Users\arahi\Desktop\sample.txt&d=C:\Users\arahi\EDI.xsd&re=EDIX12&s=Arpit&db_props=odistagedb.properties

Here i have specified Arpit, this will get added to all the table which will be created out of the complex file

i.e. if i have three complex type in my complex file

Invoice
Header and Detail

It will create three tables in the backend database

Arpit_Invoice, Arpit_Header and Arpit_Detail.

All the table will be created in the sb schema which is specified in the odistagedb.properties file mentioned above.

This file needs to be stored in %ODI_DOMAIN_DIR%/bin directory

This file contains following sample values

driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:XE
user=odi_stage
password=Jn9h9kjXM6d3wqsljXtetA==
schema=odi_stage
drop_on_connect=N
create_tables=AUTO
create_indexes=Y
truncate_before_load=Y
ids_in_db=Y
drop_tables_on_drop_schema=Y
use_prepared_statements=Y
use_batch_update=Y
batch_update_size=30
commit_periodically=Y
num_inserts_before_commit=1000
reserve_chars_for_column=3
reserve_chars_for_table=3


Here the password is encrypted and you can use ODIFTP activities in a package to encrypt this password