Previous Next JavaScript must be enabled to correctly display this content

## 3 Complex Scenario

Here all OBMA products are installed on separate servers and every OBMA product has DMS and NLP system installed. In such a scenario, documents uploaded on DMS of OBCM will not be accessible by NLP of OBSCF.

For NLP of OBSCF, documents must be uploaded on DMS of OBSCF. And for NLP of OBINV, documents must be uploaded on DMS of OBINV and so on.

Note:

NLP & DMS of same OBMA products can interact with each other but not across OBMA products.
Description of the illustration nlp2.png

Thus in OBDX:

- All content transactions and NLP transactions done for module SCF should interact with DMS and NLP system of OBSCF
- All content transactions and NLP transactions done for module INV should interact with DMS and NLP system of OBINV.

Hence, default configurations cannot be used in this scenario. To achieve this, a configurator table has been added:`“DIGX_MO_CONFIGURATION_SELECTOR”` . For modules, where module specific HOST IP, PORT & HEADERS are to be picked instead of default configurations, entries can be made in this table. Thus using this table, every module can interact with DMS and NLP systems of their respective mid-office products. For such modules, the configuration in this table has been overridden.

Previously, actual configuration values were stored in tables like: `DIGX_FW_CONFIG_ADAPTER_PROP_B, DIGX_FW_CONFIG_VAR_B` and configuration variables were created in AdapterConstants.java of Host implementation.

With the addition of the `DIGX_MO_CONFIGURATION_SELECTOR` table, configuration values will still be stored in same tables. The only difference would be that instead of providing configuration variables via AdapterConstants.java, they will be provided by the table.

Note:

The `DIGX_MO_CONFIGURATION_SELECTOR` table contains the variable names of configurations which are to be overridden and not the actual configuration values.

The dummy scripts are listed below for reference:

- `Insert into DIGX_MO_CONFIGURATION_SELECTOR (MODULE_IDENTIFIER,QUALIFIED_METHOD_NAME,SERVICE_ID,ADAPTER_IMPL,TRANSACTION_TYPE,APPLICATION_ID,USER_ID,BRANCH_CODE,USE_CASE_NAME,ENTITY_ID) values ('SCF','com.ofss.digx.extxface.midoffice.content.adapter.IContentMOAdapter.create','scfDocumentUpload','SCFAdapterImplConfig',null,'DMS_APP_ID','USER_ID','BRANCH_CODE',null,'ENTITY_ID');`
- `Insert into DIGX_MO_CONFIGURATION_SELECTOR (MODULE_IDENTIFIER,QUALIFIED_METHOD_NAME,SERVICE_ID,ADAPTER_IMPL,TRANSACTION_TYPE,APPLICATION_ID,USER_ID,BRANCH_CODE,USE_CASE_NAME,ENTITY_ID) values ('SCF','com.ofss.digx.extxface.midoffice.content.adapter.IContentMOAdapter.read','scfDocumentDownload','SCFAdapterImplConfig',null,'DMS_APP_ID','USER_ID','BRANCH_CODE',null,'ENTITY_ID');`
- `Insert into DIGX_MO_CONFIGURATION_SELECTOR (MODULE_IDENTIFIER,QUALIFIED_METHOD_NAME,SERVICE_ID,ADAPTER_IMPL,TRANSACTION_TYPE,APPLICATION_ID,USER_ID,BRANCH_CODE,USE_CASE_NAME,ENTITY_ID) values ('SCF','com.ofss.digx.extxface.midoffice.content.adapter.IContentMOAdapter.listDocuments','scfDocumentsList','SCFAdapterImplConfig',null,'DMS_APP_ID','USER_ID','BRANCH_CODE',null,'ENTITY_ID');`
- `Insert into DIGX_MO_CONFIGURATION_SELECTOR (MODULE_IDENTIFIER,QUALIFIED_METHOD_NAME,SERVICE_ID,ADAPTER_IMPL,TRANSACTION_TYPE,APPLICATION_ID,USER_ID,BRANCH_CODE,USE_CASE_NAME,ENTITY_ID) values ('SCF','com.ofss.digx.extxface.midoffice.content.adapter.IContentMOAdapter.delete','scfDocumentDelete','SCFAdapterImplConfig',null,'DMS_APP_ID','USER_ID','BRANCH_CODE',null,'ENTITY_ID');`
- `Insert into DIGX_MO_CONFIGURATION_SELECTOR (MODULE_IDENTIFIER,QUALIFIED_METHOD_NAME,SERVICE_ID,ADAPTER_IMPL,TRANSACTION_TYPE,APPLICATION_ID,USER_ID,BRANCH_CODE,USE_CASE_NAME,ENTITY_ID) values ('SCF','com.ofss.digx.extxface.nlp.adapter.namedentityrecognizer.INamedEntityRecognizerAdapter.extract','scfNamedEntityExtract','SCFAdapterImplConfig',null,'NLP_APP_ID','USER_ID','BRANCH_CODE','NER_USE_CASE_NAME','ENTITY_ID');`
- `Insert into DIGX_MO_CONFIGURATION_SELECTOR (MODULE_IDENTIFIER,QUALIFIED_METHOD_NAME,SERVICE_ID,ADAPTER_IMPL,TRANSACTION_TYPE,APPLICATION_ID,USER_ID,BRANCH_CODE,USE_CASE_NAME,ENTITY_ID) values ('SCF','com.ofss.digx.extxface.nlp.adapter.namedentityrecognizer.INamedEntityRecognizerAdapter.correct','scfNamedEntityCorrect','SCFAdapterImplConfig',null,'NLP_APP_ID','USER_ID','BRANCH_CODE','NER_USE_CASE_NAME','ENTITY_ID');`
- `Insert into DIGX_MO_CONFIGURATION_SELECTOR (MODULE_IDENTIFIER,QUALIFIED_METHOD_NAME,SERVICE_ID,ADAPTER_IMPL,TRANSACTION_TYPE,APPLICATION_ID,USER_ID,BRANCH_CODE,USE_CASE_NAME,ENTITY_ID) values ('INVOICE','com.ofss.digx.extxface.midoffice.content.adapter.IContentMOAdapter.create','invoiceDocumentUpload','InvoiceAdapterImplConfig',null,'DMS_APP_ID','USER_ID','BRANCH_CODE',null,'ENTITY_ID');`
- `Insert into DIGX_MO_CONFIGURATION_SELECTOR (MODULE_IDENTIFIER,QUALIFIED_METHOD_NAME,SERVICE_ID,ADAPTER_IMPL,TRANSACTION_TYPE,APPLICATION_ID,USER_ID,BRANCH_CODE,USE_CASE_NAME,ENTITY_ID) values ('INVOICE','com.ofss.digx.extxface.midoffice.content.adapter.IContentMOAdapter.read','invoiceDocumentDownload','InvoiceAdapterImplConfig',null,'DMS_APP_ID','USER_ID','BRANCH_CODE',null,'ENTITY_ID');`
- `Insert into DIGX_MO_CONFIGURATION_SELECTOR (MODULE_IDENTIFIER,QUALIFIED_METHOD_NAME,SERVICE_ID,ADAPTER_IMPL,TRANSACTION_TYPE,APPLICATION_ID,USER_ID,BRANCH_CODE,USE_CASE_NAME,ENTITY_ID) values ('INVOICE','com.ofss.digx.extxface.midoffice.content.adapter.IContentMOAdapter.listDocuments','invoiceDocumentsList','InvoiceAdapterImplConfig',null,'DMS_APP_ID','USER_ID','BRANCH_CODE',null,'ENTITY_ID');`
- `Insert into DIGX_MO_CONFIGURATION_SELECTOR (MODULE_IDENTIFIER,QUALIFIED_METHOD_NAME,SERVICE_ID,ADAPTER_IMPL,TRANSACTION_TYPE,APPLICATION_ID,USER_ID,BRANCH_CODE,USE_CASE_NAME,ENTITY_ID) values ('INVOICE','com.ofss.digx.extxface.midoffice.content.adapter.IContentMOAdapter.delete','invoiceDocumentDelete','InvoiceAdapterImplConfig',null,'DMS_APP_ID','USER_ID','BRANCH_CODE',null,'ENTITY_ID');`
- `Insert into DIGX_MO_CONFIGURATION_SELECTOR (MODULE_IDENTIFIER,QUALIFIED_METHOD_NAME,SERVICE_ID,ADAPTER_IMPL,TRANSACTION_TYPE,APPLICATION_ID,USER_ID,BRANCH_CODE,USE_CASE_NAME,ENTITY_ID) values ('INVOICE','com.ofss.digx.extxface.nlp.adapter.namedentityrecognizer.INamedEntityRecognizerAdapter.extract','invoiceNamedEntityExtract','InvoiceAdapterImplConfig',null,'NLP_APP_ID','USER_ID','BRANCH_CODE','NER_USE_CASE_NAME','ENTITY_ID');`
- `Insert into DIGX_MO_CONFIGURATION_SELECTOR (MODULE_IDENTIFIER,QUALIFIED_METHOD_NAME,SERVICE_ID,ADAPTER_IMPL,TRANSACTION_TYPE,APPLICATION_ID,USER_ID,BRANCH_CODE,USE_CASE_NAME,ENTITY_ID) values ('INVOICE','com.ofss.digx.extxface.nlp.adapter.namedentityrecognizer.INamedEntityRecognizerAdapter.correct','invoiceNamedEntityCorrect','InvoiceAdapterImplConfig',null,'NLP_APP_ID','USER_ID','BRANCH_CODE','NER_USE_CASE_NAME','ENTITY_ID');`

Table definition is already available in svn, please find below table description:

`CREATE TABLE DIGX_MO_CONFIGURATION_SELECTOR( MODULE_IDENTIFIER VARCHAR2(100) not null, QUALIFIED_METHOD_NAME VARCHAR2(200) not null, SERVICE_ID VARCHAR2(200) not null, ADAPTER_IMPL VARCHAR2(100) not null, TRANSACTION_TYPE VARCHAR2(100), APPLICATION_ID VARCHAR2(500) not null, USER_ID VARCHAR2(500) not null, BRANCH_CODE VARCHAR2(500) not null, USE_CASE_NAME VARCHAR2(100), ENTITY_ID VARCHAR2(500))`

Primary Key:

Module Identifier – Module ID for which configuration overriding is being done.

Qualified Method Name – Fully qualified name of the Host service (from Interface) for which configuration overriding is being done.

Remaining fields/columns:

These fields contain the configuration variable names which are typically required to call the Host/mid-office service.

Note:

The table and scripts are only required for the Complex Scenario and not for the Ideal Scenario. Thus, these scripts are not committed, but need to be executed as and when required