1 Placeholder Update for Oracle Banking Microservices Architecture Services

This topic provides the information about the various methods to perform the placeholder update for Oracle Banking Microservices Architecture services.

1.1 Method 1 – Via setUserOverrides.sh file

This topic provides the systematic instructions to run Oracle Banking Microservices Architecture services through setUserOverrides.sh file.

  1. Create a file named setUserOverrides.sh inside the WebLogic bin location.
  2. The following formats of the setUserOverrides.sh file and the list of parameters that need to be passed to run Oracle Banking Microservices Architecture Services properly.

    Note:

    Below is the list of -D params (ENV variables) that must be set for all individual services. Set a single –Dparam as follows:

    JAVA_OPTIONS="${JAVA_OPTIONS} -DParam =<ParamValue>” export JAVA_OPTIONS

    //Common Properties

    -Dplato.services.config.port= <CONFIG_SERVICE_PORT>

    -Dplato.services.config.uri= http://<CONFIG_SERVICE_HOSTNAME>:<CONFIG_SERVICE_PORT>

    -Deureka.client.serviceUrl.defaultZone= http://<DISCOVERY_SERVICE_HOST>:<DISCOVERY_SERVICE_PORT>/plato-discovery-service/eureka

    -Dplato.services.entityservices.port= <PLATO_ORCH_SERVICE_PORT>

    -Dplato.service.logging.path= <LOGGING PATH>

    //Flyway Common Placeholders

    -Dflyway.domain.placeHolders.eureka.host= <DISCOVERY_SERVICE_HOST>

    -Dflyway.domain.placeHolders.eureka.port= <DISCOVERY_SERVICE_PORT>

    -Dflyway.domain.placeHolders.plato-api-gateway.server.port= <API_GATEWAY_PORT>

    -Dflyway.domain.placeHolders.zipkin.host= <ZIPKIN_HOSTNAME>

    -Dflyway.domain.placeHolders.zipkin.port= <ZIPKIN_PORT>

    //SMS - Needed for other services also

    -Dflyway.domain.placeHolders.sms.username= <SMS_SCHEMA_USERNAME>

    -Dflyway.domain.placeHolders.sms.password= <SMS_SCHEMA_PASSWORD>

    -Dflyway.domain.placeHolders.sms.jdbcUrl= <SMS_SCHEMA_URL>

    -Dflyway.domain.placeHolders.sms.schemas= <SMS_SCHEMA_NAME>

    //Plato Config Service - Needed for other services also

    -Dflyway.domain.placeHolders.plato-config.username= <PLATO_DB_USERNAME>

    -Dflyway.domain.placeHolders.plato-config.password= <PLATO_DB_PASSWORD>"

    -Dflyway.domain.placeHolders.plato-config.jdbcUrl= <PLATO_DB_URL>

    -Dflyway.domain.placeHolders.driver.className= oracle.jdbc.driver.OracleDriver

    -Dflyway.domain.placeHolders.plato-config.schemas= <PLATO_DB_SCHEMANAME>

    //Plato Api Gateway - Needed for other services also

    -Dflyway.domain.placeHolders.api-gateway.username= <SECURITY_DB_USERNAME>

    -Dflyway.domain.placeHolders.api-gateway.password= <SECURITY_DB_PASSWORD>

    -Dflyway.domain.placeHolders.api-gateway.jdbcUrl= <SECURITY_DB_URL>

    -Dflyway.domain.placeHolders.api-gateway.schemas= <SECURITY_SCHEMANAME>

    -Dflyway.domain.placeHolders.apigateway.host= <APIGATEWAY_HOSTNAME>

    -Dflyway.domain.placeHolders.apigateway.port= <APIGATEWAY_PORT>

    -Dflyway.domain.placeHolders.USER.STORE= <USER.STORE>

    -Dflyway.domain.placeHolders.LDAP.CORS.allowed.origin= <LDAP_CORS>

    -Dflyway.domain.placeHolders.LDAP.credential.SALT= <LDAP_CREDENTIALS_SALT>

    -Dflyway.domain.placeHolders.JWT.EXPIRY.seconds= <JWT_EXPIRY_SECONDS>

    -Dflyway.domain.placeHolders.LDAP.url = <LDAP_SERVER_URL >

    -Dflyway.domain.placeHolders.LDAP.userId = <LDAP_SERVER_USER>

    -Dflyway.domain.placeHolders.LDAP.server.base = <LDAP_SERVER_BASE>

    -Dflyway.domain.placeHolders.LDAP.server.credential = <LDAP_CREDENTIALS>

    -Dflyway.domain.placeHolders.LDAP.usersearch.base = <LDAP_USER_BASE>

    -Dflyway.domain.placeHolders LDAP.user.prefix = <LDAP_USER_PREFIX>

    -Dflyway.domain.placeHolders.LDAP.provider = <LDAP_PROVIDER>

    -Dflyway.domain.placeHolders.TOKEN.autoregenerate = <TOKEN_AUTOREGENERATION>

    -Dflyway.domain.placeHolders.SSO.enabled = <SSO_ENABLED>

    -Dflyway.domain.placeHolders.TOKEN.regeneration.enabled = <TOKEN_ALWAYSNEW_GENERATION >

    //Plato Discovery Service

    -Dflyway.domain.placeHolders.plato-discovery-service.server.port=<DISCOVERY_SERVICE_PORT>

    //Plato UI-Config Services

    -Dflyway.domain.placeHolders.plato-ui-config-services.server.port=<UICONFIG_SERVICE_PORT>

    -Dflyway.domain.placeHolders.plato-ui-config.username=<UICONFIG_SCHEMA_USERNAME>

    -Dflyway.domain.placeHolders.plato-ui-config.password=<UICONFIG_SCHEMA_PASSWORD>

    -Dflyway.domain.placeHolders.plato-ui-config.jdbcUrl=<UICONFIG_SCHEMA_URL>

    -Dflyway.domain.placeHolders.plato-ui-config.schemas=<UICONFIG_SCHEMA_NAME>

    //Plato Feed Services

    -Dflyway.domain.placeHolders.plato-feed-services.feed.upload.directory=<FEED_SERVICE_UPLOAD_PATH>

    -Dflyway.domain.placeHolders.plato-feed-services.server.port=<FEED_SERVICE_PORT>

    -Dflyway.domain.placeHolders.plato-feed-services.username=<FEED_DB_USERNAME>

    -Dflyway.domain.placeHolders.plato-feed-services.password=<FEED_DB_PASSWORD>

    -Dflyway.domain.placeHolders.plato-feed-services.jdbcUrl=<FEED_DB_URL>

    -Dflyway.domain.placeHolders.plato-feed-services.schemas=<FEED_SCHEMA_NAME>

    //Plato Batch Server

    -Dflyway.domain.placeHolders.plato-batch-server.server.port=<BATCH_SERVER_PORT>

    -Dflyway.domain.placeHolders.plato-batch-server.plato.eventhub.kafka.brokers=<EVETNHUB_KAFKA_BROKERS>

    -Dflyway.domain.placeHolders.plato-batch-server.plato.eventhub.zk.nodes=<ZK_NODES>

    -Dflyway.domain.placeHolders.plato-batch-server.username=<BATCH_SCHEMA_USERNAME>

    -Dflyway.domain.placeHolders.plato-batch-server.password=<BATCH_SCHEMA_PASSWORD>

    -Dflyway.domain.placeHolders.plato-batch-server.jdbcUrl=<BATCH_SCHEMA_URL>

    -Dflyway.domain.placeHolders.plato-batch-server.schemas=<BATCH_SCHEMA_NAME>

    // Plato-Alerts-Management-Services

    -Dflyway.domain.placeHolders.plato-alerts-management-services.server.port=<ALERTS-MANAGEMENT-SERVER-PORT>

    -Dflyway.domain.placeHolders.plato-alerts-management-services.plato.eventhub.kafka.brokers=<EVETNHUB_KAFKA_BROKERS>

    -Dflyway.domain.placeHolders.plato-alerts-management-services.plato.eventhub.zk.nodes=<ZK_NODES>

    -Dflyway.domain.placeHolders.plato-alerts-management-services.username=<ALERTS_SCHEMA_USERNAME>

    -Dflyway.domain.placeHolders.plato-alerts-management-services.password=<ALERTS_SCHEMA_PASSWORD>

    -Dflyway.domain.placeHolders.plato-alerts-management-services.jdbcUrl=<ALERTS_SCHEMA_URL>

    -Dflyway.domain.placeHolders.plato-alerts-management-services.schemas=<ALERTS_SCHEMA_NAME>

    //Plato Orch Service

    -Dflyway.domain.placeHolders.plato-orch-service.server.port=<ORCH_SERVICE_PORT>

    -Dflyway.domain.placeHolders. plato-orchestrator.hostname=<CONDUCTOR-EUREKA-HOSTNAME >

    //Conductor

    -Dconductor.properties=<CONDUCTOR_CONFIG_FILE_PATH>

    //Common core NLP services

    -Dflyway.domain.placeholders.cmc-nlp-annotator-services.server.port=<CMC_NLP_ANNOTATOR_SERVICES_PORT>

    -Dflyway.domain.placeholders.cmc-nlp-dashboard-widget-services.server.port=<CMC_NLP_DASHBOARD_SERVICES_PORT>

    -Dflyway.domain.placeholders.cmc-nlp-model-mngmnt-services.server.port=<CMC_NLP_MODEL_MANGEMENT_PORT>

    -Dflyway.domain.placeholders.cmc-nlp-online-processing-services.server.port=<CMC_NLP_ONLINE_PROCESSING_PORT>

    -Dflyway.domain.placeholders.cmc-nlp-tag-maint-services.server.port=<CMC_NLP_TAG_MAINTENANCE_PORT>

    -Dflyway.domain.placeholders.cmc-nlp-text-extraction-services.server.port=<CMC_NLP_TEXT_EXTRACTION_PORT>

    -Dflyway.domain.placeholders.cmc-nlp-txn-log-services.server.port=<CMC_NLP_TXN_LOG_SERVICES_PORT>

    -Dflyway.domain.placeholders.cmc-nlp-util-services.server.port=<CMC_NLP_UTIL_SERVICES_PORT>

    // Common core NLP Poller service

    -Dflyway.domain.placeholders.cmc-fc-ai-ml-services.server.port=<Server_Port>

    -Dflyway.domain.placeholders.cmc-fc-ai-ml-services.server.postingPath=<Posting_Path>

    -Dflyway.domain.placeholders.cmc-fc-ai-ml-services.server.pollingPath=<Polling_Path>

    -Dflyway.domain.placeholders.cmc-fc-ai-ml-services.server.pollingEmail=<Polling_Email>

    -Dflyway.domain.placeholders.cmc-fc-ai-ml-services.server.emailServerHost=<Email_Server_Host>

    -Dflyway.domain.placeholders.cmc-fc-ai-ml-services.server.emailServerPort=<Email_Server_PORT>

    -Dflyway.domain.placeholders.cmc-fc-ai-ml-services.server.pollingFrequency=<Polling_Frequency>

    -Dflyway.domain.placeholders.cmc-fc-ai-ml-services.server.pollerInitialDelay=<Poller_Initial_Delay>

    -Dflyway.domain.placeholders.cmc-fc-ai-ml-services.server.emailPassword=<Poller_Email_Password>

1.2 Method 2 – Via Passing the -D params in the Server Start Argument

This topic provides the systematic instructions to run the Oracle Banking Microservices Architecture services by passing the -D params in the Server start argument.

All the above mentioned -D parameters can be passed through the Server start argument in the respective managed server.
  1. On Domain Structure, click Environment. Under Environment, click Servers.
    The Summary of Servers screen displays.
  2. On the Servers (Filtered - More Columns Exist) table, click managed server to pass the values.
    The Settings for managed server tab displays.

    Figure 1-2 Settings for managed server



  3. On Settings for managed server tab, select Server Start tab.
  4. Edit the Arguments field and pass all the environment parameters required for the service to run.
  5. Save the configuration and restart the managed server.
    After restart, the service can be started or deployed properly.

1.3 Method 3 – Using env files and setUserOverrides.sh file

This topic provides the systematic instructions to run Oracle Banking Microservices Architecture services by using env files and setUserOverrides.sh file.

  1. Copy the setUserOverrides.sh file to each of the <domain>/bin folder.
    The example of the file is given below:
    #!/bin/bash
    # shellcheck disable=SC1090
    # Common functions
    
    set -e -x
    
    config_file=""
    PLATO_CONFIG_MANAGED_SERVER_NAME=""
    
    # This file is used only for PLATO-CONFIG service
    plato_config_file="${DOMAIN_HOME}/bin/plato-config-deploy.env"
    
    # This file is used for rest of the services
    domain_config_file="${DOMAIN_HOME}/bin/domain-config-deploy.env"
    
    if [ -f "$plato_config_file" ] ; then
       PLATO_CONFIG_MANAGED_SERVER_NAME=`cat ${DOMAIN_HOME}/bin/plato-config-deploy.env | grep "PLATO_CONFIG_MANAGED_SERVER_NAME" | cut -d'=' -f2`
    fi
    if [ "${SERVER_NAME}" = "${PLATO_CONFIG_MANAGED_SERVER_NAME}" ] ; then
       # This will get executed only for Plato-config service entries
       config_file="${plato_config_file}"
    fi
    if [ -f "$config_file" ]
    then
       while read -r prop || [ -n "$prop" ]
       do
          case "$prop" in \#*) continue ;; esac
          if [ -z "${prop}" ]; then
          continue
       else
          PLACEHOLDERS=${PLACEHOLDERS}" "$(echo -D$prop)
          PLACEHOLDERS="${PLACEHOLDERS}"
    fi
       done < "$config_file"
    else
       echo "$config_file not found. please provide the property file to set -D parameter"
       exit 1
    fi
    
    PLACEHOLDERS="${PLACEHOLDERS}"
    
    JAVA_OPTIONS="${JAVA_OPTIONS}${PLACEHOLDERS}"
    
    export JAVA_OPTIONS
    
    echo "${JAVA_OPTIONS}"
  2. Place the env files containing all the key value pairs of the -D params in the respective <domain>/env folder.
    The plato-config-deploy.env file contains all the key value pairs specific only to the plato-config-service and need to be placed in the bin folder of the plato-domain.

    The domain-config-deploy.env file contains the key-value pairs for the rest of the services and should be placed in each <domain>/bin folder.

    Sample file for plato-config-deploy.env is given below:
    ### Managed server name of plato-config service ###
    PLATO_CONFIG_MANAGED_SERVER_NAME=
    
    ### plato config flyway connection entries ###
    flywayTask=migrate
    flyway.enabled=true
    spring.flyway.enabled=false
    plato-config.flyway.domain.db.username=
    plato-config.flyway.domain.db.password=
    plato-config.flyway.domain.db.jdbcUrl=
    plato-config.flyway.domain.schemas=
    plato-config.flyway.domain.locations=db/migration/domain/plato,db/migration/domain/sms,db/migration/domain/cmc,db/migration/domain/obvam
    
    #### Kafka properties for all services ####
    flyway.domain.placeholders.plato.eventhub.broker.hosts=
    flyway.domain.placeholders.plato.eventhub.zookeper.hosts=
    
    #### Kafka Security for all services ####
    flyway.domain.placeholders.plato.eventhub.broker.hosts=
    flyway.domain.placeholders.plato.eventhub.zookeper.hosts=
    flyway.domain.placeholders.kafka.ssl.truststore.location=
    flyway.domain.placeholders.kafka.ssl.truststore.password=
    flyway.domain.placeholders.kafka.broker.username=
    flyway.domain.placeholders.kafka.broker.password=
    
    ### common entries for all services ###
    flyway.domain.placeholders.driver.className=oracle.jdbc.driver.OracleDriver
    
    ### eureka entries for all services ###
    flyway.domain.placeholders.eureka.host=
    flyway.domain.placeholders.eureka.port=
    
    ### zipkin entries for all services ###
    flyway.domain.placeholders.zipkin.host=
    flyway.domain.placeholders.zipkin.port=
    
    ### plato config flyway placeholder entries ###
    flyway.domain.placeholders.plato-config.username=
    flyway.domain.placeholders.plato-config.password=
    flyway.domain.placeholders.plato-config.jdbcUrl=
    flyway.domain.placeholders.plato-config.schemas=
    flyway.domain.placeholders.plato-config.sessionIdleTimeout=
    flyway.domain.placeholders.plato-config.sessionIdleWarningTime=
    flyway.domain.placeholders.plato-config.environment=
    
    ### plato api-gateway flyway placeholder entries ###
    flyway.domain.placeholders.api-gateway.host=
    flyway.domain.placeholders.api-gateway.username=
    flyway.domain.placeholders.api-gateway.password=
    flyway.domain.placeholders.api-gateway.jdbcUrl=
    flyway.domain.placeholders.api-gateway.schemas=
    flyway.domain.placeholders.plato-api-gateway.server.port=
    
    ### plato api-gateway LDAP flyway placeholder entries ###
    flyway.domain.placeholders.USER.STORE=
    flyway.domain.placeholders.LDAP.CORS.allowed.origin=
    flyway.domain.placeholders.LDAP.credential.SALT=
    flyway.domain.placeholders.JWT.EXPIRY.seconds=
    flyway.domain.placeholders.LDAP.url=
    flyway.domain.placeholders.LDAP.userId=
    flyway.domain.placeholders.LDAP.server.base=
    flyway.domain.placeholders.LDAP.server.credential=
    flyway.domain.placeholders.LDAP.usersearch.base=
    flyway.domain.placeholders.LDAP.user.prefix=
    # Allowed values for LDAP provider are: EMBEDDED_WEBLOGIC, PLATO
    # If LDAP is running in weblogic then value should be EMBEDDED_WEBLOGIC
    # If spring based LDAP(which is run through a jar provided) is used, then the value should be PLATO
    flyway.domain.placeholders.LDAP.provider=
    flyway.domain.placeholders.TOKEN.autoregenerate=
    flyway.domain.placeholders.SSO.enabled=
    flyway.domain.placeholders.TOKEN.regeneration.enabled=
    
    ### plato-ui-config flyway placeholder entries ###
    flyway.domain.placeholders.plato-ui-config.username=
    flyway.domain.placeholders.plato-ui-config.password=
    flyway.domain.placeholders.plato-ui-config.jdbcUrl=
    flyway.domain.placeholders.plato-ui-config.schemas=
    flyway.domain.placeholders.plato-ui-config-services.server.port=
    flyway.domain.placeholders.apigateway.host=
    flyway.domain.placeholders.apigateway.port=
    
    ### plato-discovery flyway placeholder entries ###
    flyway.domain.placeholders.plato-discovery-service.server.port=
    
    ### plato-orch flyway placeholder entries ###
    flyway.domain.placeholders.plato-orch-service.server.port=
    flyway.domain.placeholders.plato-orchestrator.hostname=
    
    ### plato-feed flyway placeholder entries ###
    flyway.domain.placeholders.plato-feed-services.username=
    flyway.domain.placeholders.plato-feed-services.password=
    flyway.domain.placeholders.plato-feed-services.jdbcUrl=
    flyway.domain.placeholders.plato-feed-services.jndi=jdbc/PLATOFEED
    flyway.domain.placeholders.plato-feed-services.schemas=
    flyway.domain.placeholders.plato-feed-services.feed.upload.directory=
    flyway.domain.placeholders.plato-feed-services.server.port=
    
    ### plato-batch flyway placeholder entries ###
    flyway.domain.placeholders.plato-batch-server.username=
    flyway.domain.placeholders.plato-batch-server.password=
    flyway.domain.placeholders.plato-batch-server.jdbcUrl=
    flyway.domain.placeholders.plato-batch-server.schemas=
    flyway.domain.placeholders.plato-batch-server.server.port=
    flyway.domain.placeholders.plato-batch-server.plato.eventhub.kafka.brokers=
    flyway.domain.placeholders.plato-batch-server.plato.eventhub.zk.nodes=
    flyway.domain.placeholders.plato-batch-server.jndi=jdbc/PLATOBATCH
    
    ### plato-alerts-management flyway placeholder entries ###
    flyway.domain.placeholders.plato-alerts-management-services.username=
    flyway.domain.placeholders.plato-alerts-management-services.password=
    flyway.domain.placeholders.plato-alerts-management-services.jdbcUrl=
    flyway.domain.placeholders.plato-alerts-management-services.schemas=
    flyway.domain.placeholders.plato-alerts-management-services.server.port=
    
    ### sms flyway placeholder entries ###
    flyway.domain.placeholders.sms-core-services.server.port=
    flyway.domain.placeholders.sms.username=
    flyway.domain.placeholders.sms.password=
    flyway.domain.placeholders.sms.jdbcUrl=
    flyway.domain.placeholders.sms.schemas=
    
    ### cmncore flyway placeholder entries ###
    flyway.domain.placeholders.cmncore.username=
    flyway.domain.placeholders.cmncore.password=
    flyway.domain.placeholders.cmncore.jdbcUrl=
    flyway.domain.placeholders.cmncore.schemas=
    flyway.domain.placeholders.cmc-corebanking-adapter-service.server.port=
    flyway.domain.placeholders.cmc-currency-services.server.port=
    flyway.domain.placeholders.cmc-account-services.server.port=
    flyway.domain.placeholders.cmc-base-services.server.port=
    flyway.domain.placeholders.cmc-external-virtual-account-services.server.port=
    flyway.domain.placeholders.cmc-branch-services.server.port=
    flyway.domain.placeholders.cmc-customer-services.server.port=
    flyway.domain.placeholders.cmc-external-chart-account-services.server.port=
    flyway.domain.placeholders.cmc-external-system-services.server.port=
    flyway.domain.placeholders.cmc-advice-services.server.port=
    flyway.domain.placeholders.cmc-facilities-services.server.port=
    flyway.domain.placeholders.cmc-txn-code-services.server.port=
    flyway.domain.placeholders.cmc-settlement-services.server.port=
    flyway.domain.placeholders.cmc-businessoverrides-services.server.port=
    flyway.domain.placeholders.cmc-resource-segment-orchestrator-service.server.port=
    flyway.domain.placeholders.cmc-screenclass-services.server.port=
    flyway.domain.placeholders.cmc-datasegment-services.server.port=
    flyway.domain.placeholders.cmc-settlements-services.server.port=
    flyway.domain.placeholders.cmc-transactioncontroller-services.server.port=
    flyway.domain.placeholders.cmc-report-services.server.port=
    flyway.domain.placeholders.cmc-nlp-annotator-services.server.port=
    flyway.domain.placeholders.cmc-nlp-dashboard-widget-services.server.port=
    flyway.domain.placeholders.cmc-nlp-model-mngmnt-services.server.port=
    flyway.domain.placeholders.cmc-nlp-online-processing-services.server.port=
    flyway.domain.placeholders.cmc-nlp-tag-maint-services.server.port=
    flyway.domain.placeholders.cmc-nlp-text-extraction-services.server.port=
    flyway.domain.placeholders.cmc-nlp-txn-log-services.server.port=
    flyway.domain.placeholders.cmc-nlp-util-services.server.port=
    flyway.domain.placeholders.cmc-batch-services.server.port=
    flyway.domain.placeholders.cmc-fc-ai-ml-services.server.port=
    flyway.domain.placeholders.cmc-fc-ai-ml-services.postingPath=
    flyway.domain.placeholders.cmc-fc-ai-ml-services.pollingEmail=
    flyway.domain.placeholders.cmc-fc-ai-ml-services.emailServerPort=
    flyway.domain.placeholders.cmc-fc-ai-ml-services.emailServerHost=
    flyway.domain.placeholders.cmc-fc-ai-ml-services.pollingFrequency=
    flyway.domain.placeholders.cmc-fc-ai-ml-services.pollerInitialDelay=
    flyway.domain.placeholders.cmc-fc-ai-ml-services.emailPassword=
    flyway.domain.placeholders.cmc-fc-ai-ml-services.pollingPath=
    
    ### biPublisher related cmc-report-service entries ###
    flyway.domain.placeholders.weblogic.userid=
    flyway.domain.placeholders.weblogic.password=
    flyway.domain.placeholders.biPublisher.host=
    flyway.domain.placeholders.biPublisher.port=
    flyway.domain.placeholders.runReportTemplate=
    flyway.domain.placeholders.emailTemplate=
    flyway.domain.placeholders.dms.host=
    flyway.domain.placeholders.dms.port=
    
    ### flyway jndi connection details for shared services placeholder entries ###
    flyway.domain.placeholders.plato.jndi=jdbc/PLATO
    flyway.domain.placeholders.plato-config.jndi=jdbc/PLATO
    flyway.domain.placeholders.plato-sec.jndi=jdbc/PLATO_SECURITY
    flyway.domain.placeholders.plato-ui-config.jndi=jdbc/PLATO_UI_CONFIG
    flyway.domain.placeholders.sms.jndi=jdbc/sms
    flyway.domain.placeholders.cmncore.jndi=jdbc/CMNCORE
    
    ### flyway jndi connection details for obvam services placeholder entries ###
    flyway.domain.placeholders.eie.jndi=jdbc/EIE
    flyway.domain.placeholders.eie.server.port=
    flyway.domain.placeholders.eie.schemas=
    
    flyway.domain.placeholders.elm.jndi=jdbc/ELM
    flyway.domain.placeholders.elm.server.port=
    flyway.domain.placeholders.elm.schemas=
    
    flyway.domain.placeholders.vam.jndi=jdbc/VAM
    flyway.domain.placeholders.vam.server.port=
    flyway.domain.placeholders.vam.schemas=
    
    flyway.domain.placeholders.vac.jndi=jdbc/VAC
    flyway.domain.placeholders.vac.server.port=
    flyway.domain.placeholders.vac.schemas=
    
    flyway.domain.placeholders.vab.jndi=jdbc/VAB
    flyway.domain.placeholders.vab.server.port=
    flyway.domain.placeholders.vab.schemas=
    
    flyway.domain.placeholders.vae.jndi=jdbc/VAE
    flyway.domain.placeholders.vae.server.port=
    flyway.domain.placeholders.vae.schemas=
    
    flyway.domain.placeholders.eda.jndi=jdbc/EDA
    flyway.domain.placeholders.eda.server.port=
    flyway.domain.placeholders.eda.schemas=
    
    flyway.domain.placeholders.vai.jndi=jdbc/VAI
    flyway.domain.placeholders.vai.server.port=
    flyway.domain.placeholders.vai.schemas=
    
    flyway.domain.placeholders.van.jndi=jdbc/VAN
    flyway.domain.placeholders.van.server.port=
    flyway.domain.placeholders.van.schemas=
    
    flyway.domain.placeholders.vap.jndi=jdbc/VAP
    flyway.domain.placeholders.vap.server.port=
    flyway.domain.placeholders.vap.schemas=
    
    flyway.domain.placeholders.vas.jndi=jdbc/VAS
    flyway.domain.placeholders.vas.server.port=
    flyway.domain.placeholders.vas.schemas=
    
    flyway.domain.placeholders.vat.jndi=jdbc/VAT
    flyway.domain.placeholders.vat.server.port=
    flyway.domain.placeholders.vat.schemas=
    flyway.domain.placeholders.vaj.server.port=
    flyway.domain.placeholders.platoorch.domain.jndi=jdbc/PLATO-O
    flyway.domain.placeholders.platoorch.domain.schemas=
    flyway.domain.placeholders.plato.alerts.email.userId=
    flyway.domain.placeholders.plato.alerts.email.password=
    flyway.domain.placeholders.plato.alerts.cmc.userId=
    flyway.domain.placeholders.plato.alerts.cmc.branchCode=
    flyway.domain.placeholders.plato.alerts.cmc.appId=
    flyway.domain.placeholders.plato-rule.hostname=
    flyway.domain.placeholders.plato-rule-service.server.port=
    flyway.domain.placeholders.platorule.domain.jndi=
    flyway.domain.placeholders.platorule.domain.schemas=
    flyway.domain.placeholders.obrh.import.data.disable-modify=
    flyway.domain.placeholders.cmc-obrh-services.kafka.server.path=
    flyway.domain.placeholders.cmc-obrh-services.zookeeper.server.path=
    flyway.domain.placeholders.cmc.schemas=
    flyway.domain.placeholders.cmc-nlp-opennlp-services.server.port=
    flyway.domain.placeholders.cmc-nlp-maintenance-services.server.port=
    flyway.domain.placeholders.cmc-nlp-pipeline-services.server.port=
    flyway.domain.placeholders.cmc-nlp-docview-services.server.port=
    flyway.domain.placeholders.cmc-ml-indb-services.server.port=
    flyway.domain.placeholders.cmc-obrh-services.kafka.enabled=
    flyway.domain.placeholders.cmc-sla-services.server.port=
    flyway.domain.placeholders.cmc-obcbs-services.schemas=
    flyway.domain.placeholders.obcbs.server.port=
    flyway.domain.placeholders.orch.cmc.brn=
    flyway.domain.placeholders.orch.cmc.user=
    flyway.domain.placeholders.orch.enableDynamicAllocation=
    flyway.domain.placeholders.orch.enableSLA=
    flyway.domain.placeholders.report-service.server.port=
    flyway.domain.placeholders.report-service.hostname=
    flyway.domain.placeholders.report-service.domain.jndi=jdbc/PLATOREPORT
    flyway.domain.placeholders.report-service.template-metadata-directory=
    flyway.domain.placeholders.report-service.output-directory=
    flyway.domain.placeholders.report-service.fop-config-file=
    
    ### generic entries for all services ###
    spring.cloud.config.uri=
    apigateway.url=
    service.logging.environment=
    service.logging.path=
    Sample file for domain-config-deploy.env is given below:
    ### domain config flyway connection entries ###
    flywayTask=migrate
    flyway.enabled=true
    spring.flyway.enabled=false
    
    ### generic entries for all services ###
    spring.cloud.config.uri=
    apigateway.url=
    service.logging.environment=
    service.logging.path=

1.4 Method 4 – Workflow Configuration

This topic provides the systematic instructions to run Oracle Banking Microservices Architecture services through workflow configuration.

  1. Create Metadata of the workflow.
    The sample DSL for workflow creation is given below:
    {
         "name": "initialTest",
         "description": "Test workflow",
         "version": 4,
         "tasks": [
           {
           "name": "TEST",
           "taskReferenceName": "TESTING3",
           "description": "TESTING2",
           "inputParameters": {
           "FUNCTIONAL_CODE": "TEST_FA_ILS_REGTN2",
           "processRefNo":
         "${workflow.input.transactionModel.txnIdentification.processRefNo}",
           "processName": "Testing Process2",
           "processCode":
         "${workflow.input.transactionModel.txnIdentification.processName}",
           "transactionModel": "${workflow.input.transactionModel}",
           "stage": "TESTING2",
           "priority":
         "${workflow.input.transactionModel.transactionData.moduleData.taskPrioirty}",
           "applicationDate":
         "${workflow.input.transactionModel.txnIdentification.applicationDate}",
           "applicationNumber":
         "${workflow.input.transactionModel.txnIdentification.processRefNo}",
           "processRefNumber":
         "${workflow.input.transactionModel.txnIdentification.processRefNo}",
           "branch": "${workflow.input.transactionModel.txnIdentification.branchCode}",
           "user": "${workflow.input.transactionModel.txnIdentification.currentUser}",
           "customerNumber":
         "${workflow.input.transactionModel.transactionData.moduleData.customerId}",
           "amount":
         "${workflow.input.transactionModel.transactionData.moduleData.amount}",
           "currencyCode":
         "${workflow.input.transactionModel.transactionData.moduleData.currency}",
           "TASK_OUTCOMES": [
           "PROCEED"
           ],
           "moduleCode": "OBTFPM",
           "customFilter": [
           {
           "key": "contractRefNo",
           "label": "Back Office Reference"
           },
           {
           "key": "otherRefNo",
           "label": "External Reference"
           }
          ]
         },
         "type": "WAIT",
         "startDelay": 0,
         "optional": false,
         "asyncComplete": false
       }
       ],
       "outputParameters": {
       "stage": "CLMO_FA_SNPOAR_APPEN",
       "taskOutcome": "PROCEED_WITH_PARTICIPANT"
       },
       "schemaVersion": 2,
       "restartable": true,
       "workflowStatusListenerEnabled": false
    }
    Call the API (/api/metadata/workflow) and pass the DSL in body.The below screen depicts the sample workflow
  2. For workflow creation, call the API (/api/workflow) to create the workflow. This API provides the information to the workflow metadata which is created using previous call.
    {
           "name": "initialTest",
           "description": "initialTest",
           "version": 4,
           "input": {
             "transactionModel": {
             "transactionData": {
             "moduleData": {
             "amount": 122,
             "currency": "GBP",
             "customerId": "001506",
             "customerName": "MARKS AND SPENCER",
             "taskPrioirty": "H"
         }
        },
             "txnIdentification": {
             "branchCode": "000",
             "currentStage": "TEST_FA_ILS_REGTN2",
             "currentUser": "SWAGATIKA",
             "key1": "Desk",
             "moduleCode": "TRMO",
             "processName": "Testing Process2",
             "processRefNo": "300ILCI012260",
             "applicationDate": 1588582461960,
             "taskOutcome": "PROCEED",
             "taskPrioirty": "H"
          }
        }
      }
    }
    Pass the DSL in body. The below screen depicts the sample workflow: