...
...
Oracle OTBI projects can either source catalog objects from a source code repository or Development OTBI instances. In your OTBI project used to build and deploy WebCatalog objects you will either have the option to Populate from Git (or other SCM type) or Populate from OTBI Web Catalog on files. Similar to other technologies, FlexDeploy can sync files from a development server to a source code repository. This helps implement DevOps best practices to source control developer code.
...
Here is source code for the build workflow. You will need to update the steps in the workflow according to your Git configuration (e.g. Git Instance, sparse checkout folder, etc.). Also, keep in mind that we are running this build against the master branch (stream), if you want to commit on a different branch then create the stream on the project as appropriate.
Expand |
---|
|
Code Block |
---|
| name: Extract WebCatalog
description: ''
steps:
- id: '1'
name: Git Clone
type: INVOKE_PLUGIN
data:
pluginName: FlexagonGITPlugin
pluginOperation: clone
inputs:
- name: FDGIT_INP_INSTANCE_CODE
value:
value: FLEXTEST
isExpression: false
isEncrypted: false
- name: FDGIT_INP_DEST_SUBFOLDER
value:
value: ../obieefiles
isExpression: false
isEncrypted: false
- name: FDGIT_INP_BRANCH
value:
value: main
isExpression: false
isEncrypted: false
- name: FDGIT_INP_DEPTH
value:
value: '1'
isExpression: false
isEncrypted: false
- name: FDGIT_INP_SPARSE_CHECKOUT_FOLDERS
value:
value: ''
isExpression: false
isEncrypted: false
endpointInstanceOverride:
isExpression: false
consumesArtifacts: false
producesArtifacts: false
endpointSelection:
choice: All
endpointExecution:
choice: Any
outputs: []
userInputs: []
userOutputs: []
- id: '2'
name: exportWebCatalog
type: INVOKE_PLUGIN
data:
pluginName: FlexagonOTBIPlugin
pluginOperation: exportWebCatalog
inputs:
- name: FDOTBI_INP_EXPORT_FOLDER
value:
value: ../obieefiles/OBIEECatalog
isExpression: false
isEncrypted: false
- name: FDOTBI_INP_COPY_PERMISSIONS
value:
value: 'true'
isExpression: false
isEncrypted: false
- name: FDOTBI_INP_PRESERVE_TIMESTAMPS
value:
value: 'false'
isExpression: false
isEncrypted: false
endpointInstanceOverride:
isExpression: false
consumesArtifacts: false
producesArtifacts: false
endpointSelection:
choice: All
endpointExecution:
choice: Any
outputs: []
userInputs: []
userOutputs: []
- id: '3'
name: Add any new Files
type: INVOKE_PLUGIN
data:
pluginName: FlexagonGITPlugin
pluginOperation: add
inputs:
- name: FDGIT_INP_INSTANCE_CODE
value:
value: FLEXTEST
isExpression: false
isEncrypted: false
- name: FDGIT_INP_DEST_SUBFOLDER
value:
value: ../obieefiles
isExpression: false
isEncrypted: false
- name: FDGIT_INP_FILELIST
value:
value: '--all .'
isExpression: false
isEncrypted: false
endpointInstanceOverride:
isExpression: false
consumesArtifacts: false
producesArtifacts: false
endpointSelection:
choice: All
endpointExecution:
choice: Any
outputs: []
userInputs: []
userOutputs: []
- id: '4'
name: Commit to Git
type: INVOKE_PLUGIN
data:
pluginName: FlexagonGITPlugin
pluginOperation: commit
inputs:
- name: FDGIT_INP_INSTANCE_CODE
value:
value: FLEXTEST
isExpression: false
isEncrypted: false
- name: FDGIT_INP_DEST_SUBFOLDER
value:
value: ../obieefiles
isExpression: false
isEncrypted: false
- name: FDGIT_INP_NAME
value:
value: FD_WF_USER
isExpression: true
isEncrypted: false
- name: FDGIT_INP_EMAIL
value:
value: FD_WF_USER_EMAIL
isExpression: true
isEncrypted: false
- name: FDGIT_INP_REVISION_MESSAGE
value:
value: OBIEE files added from flexdeploy workflow.
isExpression: false
isEncrypted: false
endpointInstanceOverride:
isExpression: false
consumesArtifacts: false
producesArtifacts: false
endpointSelection:
choice: All
endpointExecution:
choice: Any
outputs: []
userInputs: []
userOutputs: []
- id: '5'
name: Push to Central Repository
type: INVOKE_PLUGIN
data:
pluginName: FlexagonGITPlugin
pluginOperation: push
inputs:
- name: FDGIT_INP_INSTANCE_CODE
value:
value: FLEXTEST
isExpression: false
isEncrypted: false
- name: FDGIT_INP_DEST_SUBFOLDER
value:
value: ../obieefiles
isExpression: false
isEncrypted: false
- name: FDGIT_INP_BRANCH
value:
value: main
isExpression: false
isEncrypted: false
- name: FDGIT_INP_FOLLOW_TAGS
value:
value: 'false'
isExpression: false
isEncrypted: false
endpointInstanceOverride:
isExpression: false
consumesArtifacts: false
producesArtifacts: false
endpointSelection:
choice: All
endpointExecution:
choice: Any
outputs: []
userInputs: []
userOutputs: []
|
Tip |
---|
We are referencing Git in the example above, but plugins exist for many other popular source control management systems as well and a similar workflow can be created to accomplish the same task. |
|
downloadWebCatalog
This operation will also export/download objects from the OTBI WebCatolog. The difference is that this operation does not require a package-based deployment project and can be called from within a utility workflow.
...
Expand |
---|
|
Code Block |
---|
| name: downloadWebCatalogs
description: ''
stepsinputs:
- idcode: '1'INPUT_WEB_CATALOG_ITEMS
namedisplayName: GitWeb Catalog CloneItems
typedataType: INVOKE_PLUGINString
datasubDataType: TextField
pluginNamedefaultValueExpression: FlexagonGITPluginfalse
pluginOperationlistDataExpression: clonefalse
multiselect: false
inputs: required: false
- nameencrypted: FDGIT_INP_INSTANCE_CODEfalse
hideWhen:
valuetype: equals
negate: false
value: FLEXTEST values: []
disableWhen:
type: equals
negate: false
values: []
steps:
- id: '1'
name: Git Clone
type: INVOKE_PLUGIN
data:
pluginName: FlexagonGITPlugin
pluginOperation: clone
inputs:
- name: FDGIT_INP_INSTANCE_CODE
value:
value: FLEXTEST
isExpression: false
isEncrypted: 'false'
- name: FDGIT_INP_DEST_SUBFOLDER
value:
value: ../otbifiles
isExpression: false
isEncrypted: 'false'
- name: FDGIT_INP_DEST_SUBFOLDERBRANCH
value:
value: ../obieefilesmain
isExpression: false
isEncrypted: 'false'
- name: FDGIT_INP_BRANCHTREELESS_CLONE
value:
value: main'false'
isExpression: false
isEncrypted: 'false'
- name: FDGIT_INP_DEPTH
value:
value: '1'
isExpression: false
isEncrypted: 'false'
- name: FDGIT_INP_SPARSE_CHECKOUT_FOLDERS
value:
value: ''
isExpression: false
isEncrypted: 'false'
endpointInstanceOverride:
isExpression: false
consumesArtifacts: false
producesArtifacts: false
endpointSelection:
choice: All
endpointExecution:
choice: Any
outputs: []
userInputs: []
userOutputs: []
- id: '2'
name: downloadWebCatalog
type: INVOKE_PLUGIN
data:
pluginName: FlexagonOTBIPlugin
pluginOperation: downloadWebCatalog
inputs:
- name: FDOTBI_INP_OBJECT_PATH
value:
value: /shared/CustomINPUT_WEB_CATALOG_ITEMS
isExpression: falsetrue
isEncrypted: 'false'
- name: FDOTBI_INP_DOWNLOAD_FOLDER
value:
value: ../obieefilesotbifiles/OBIEECatalogOTBICatalog
isExpression: false
isEncrypted: 'false'
- name: FDOTBI_INP_COPY_PERMISSIONS
value:
value: 'true'
isExpression: false
isEncrypted: 'false'
- name: FDOTBI_INP_PRESERVE_TIMESTAMPS
value:
value: 'false'
isExpression: false
isEncrypted: 'false'
- name: FDOTBI_INP_DISCOVER_SUB_ITEMS
value:
value: Scorecard, Dashboard Group
isExpression: false
isEncrypted: 'false'
endpointInstanceOverride:
isExpression: false
consumesArtifacts: false
producesArtifacts: false
endpointSelection:
choice: All
endpointExecution:
choice: Any
outputs: []
userInputs: []
userOutputs: []
- id: '3'
name: Add any new Files
type: INVOKE_PLUGIN
data:
pluginName: FlexagonGITPlugin
pluginOperation: add
inputs:
- name: FDGIT_INP_INSTANCE_CODE
value:
value: FLEXTEST
isExpression: false
isEncrypted: 'false'
- name: FDGIT_INP_DEST_SUBFOLDER
value:
value: ../obieefilesotbifiles
isExpression: false
isEncrypted: 'false'
- name: FDGIT_INP_FILELIST
value:
value: '--all .'
isExpression: false
isEncrypted: 'false'
endpointInstanceOverride:
isExpression: false
consumesArtifacts: false
producesArtifacts: false
endpointSelection:
choice: All
endpointExecution:
choice: Any
outputs: []
userInputs: []
userOutputs: []
- id: '4'
name: Commit to Git
type: INVOKE_PLUGIN
data:
pluginName: FlexagonGITPlugin
pluginOperation: commit
inputs:
- name: FDGIT_INP_INSTANCE_CODE
value:
value: FLEXTEST
isExpression: false
isEncrypted: 'false'
- name: FDGIT_INP_DEST_SUBFOLDER
value:
value: ../obieefilesotbifiles
isExpression: false
isEncrypted: 'false'
- name: FDGIT_INP_NAME
value:
value: FD_WF_USER
isExpression: true
isEncrypted: 'false'
- name: FDGIT_INP_EMAIL
value:
value: FD_WF_USER_EMAIL
isExpression: true
isEncrypted: 'false'
- name: FDGIT_INP_REVISION_MESSAGE
value:
value: OTBI files added from flexdeploy workflow.
isExpression: false
isEncrypted: 'false'
endpointInstanceOverride:
isExpression: false
consumesArtifacts: false
producesArtifacts: false
endpointSelection:
choice: All
endpointExecution:
choice: Any
outputs: []
userInputs: []
userOutputs: []
- id: '5'
name: Push to Central Repository
type: INVOKE_PLUGIN
data:
pluginName: FlexagonGITPlugin
pluginOperation: push
inputs:
- name: FDGIT_INP_INSTANCE_CODE
value:
value: FLEXTEST
isExpression: false
isEncrypted: 'false'
- name: FDGIT_INP_DEST_SUBFOLDER
value:
value: ../obieefilesotbifiles
isExpression: false
isEncrypted: 'false'
- name: FDGIT_INP_BRANCH
value:
value: main
isExpression: false
isEncrypted: 'false'
- name: FDGIT_INP_FOLLOW_TAGS
value:
value: 'false'
isExpression: false
isEncrypted: 'false'
endpointInstanceOverride:
isExpression: false
consumesArtifacts: false
producesArtifacts: false
endpointSelection:
choice: All
endpointExecution:
choice: Any
outputs: []
userInputs: []
userOutputs: []
|
Tip |
---|
We are referencing Git in the example above, but plugins exist for many other popular source control management systems as well, and a similar workflow can be created to accomplish the same task. |
|
...