Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Oracle OBIEE projects can either source catalog objects from a source code repository or Development OBIEE instances. In your OBIEE 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 OBIEE Web Catalog on files tab of your project. 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.

...

Expand
titleSample Workflow Definition


Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<ns0:WorkFlow xmlns:ns1="http://flexagon.com/flexdeploy/workflow/common" xmlns:ns0="http://flexagon.com/flexdeploy/workflow">steps:
  - id: '1'
    <ns1name:Name>Extract WebCatalog</ns1:Name> clone
    <ns1type:Description></ns1:Description>
  INVOKE_PLUGIN
 <ns0:Steps>   data:
   <ns0:Step>   pluginName: FlexagonGITPlugin
     <ns1:Name>Git Clone</ns1:Name>
 pluginOperation: clone
        <ns1:StepId>1</ns1:StepId>inputs:
        - <ns0name:InvokePlugin> FDGIT_INP_INSTANCE_CODE
           <ns0:PluginName>FlexagonGITPlugin</ns0:PluginName>value:
            <ns0:PluginOperation>clone</ns0:PluginOperation>value: DEMOGIT
            <ns0:consumesArtifacts>false</ns0:consumesArtifacts>isExpression: false
          isEncrypted: false
<ns0:producesArtifacts>false</ns0:producesArtifacts>        - name: FDGIT_INP_DEST_SUBFOLDER
  <ns0:PluginInputs>        value:
       <ns0:PluginInput>     value: ''
            <ns0:Name>FDGIT_INP_INSTANCE_CODE</ns0:Name>isExpression: false
          isEncrypted: false
        - <ns0:ValueType>Text</ns0:ValueType>name: FDGIT_INP_BRANCH
          value:
       <ns0:Encrypted>false</ns0:Encrypted>     value: FDBLD_STREAM_NAME
            <ns1:Type>String</ns1isExpression:Type> true
          isEncrypted: false
     <ns0:Text>GITDEMO</ns0:Text>   - name: FDGIT_INP_TREELESS_CLONE
          </ns0value:PluginInput>
            value: 'false'
 <ns0:PluginInput>           isExpression: false
      <ns0:Name>FDGIT_INP_DEST_SUBFOLDER</ns0:Name>    isEncrypted: false
        - name: FDGIT_INP_DEPTH
    <ns0:ValueType>Text</ns0:ValueType>      value:
            <ns0:Encrypted>false</ns0:Encrypted>isExpression: false
          isEncrypted: false
      <ns1:Type>String</ns1:Type>  - name: FDGIT_INP_SPARSE_CHECKOUT_FOLDERS
          value:
   <ns0:Text>../obieefiles</ns0:Text>         isExpression: false
     </ns0:PluginInput>     isEncrypted: false
      endpointInstanceOverride:
  <ns0:PluginInput>      isExpression: false
      consumesArtifacts: false
   <ns0:Name>FDGIT_INP_BRANCH</ns0:Name>   producesArtifacts: false
      endpointSelection:
       <ns0:ValueType>Expression</ns0:ValueType>
 choice: All
      endpointExecution:
          <ns0:Encrypted>false</ns0:Encrypted>
choice: Any
      outputs: []
         <ns1:Type>String</ns1:Type>
userInputs: []
      userOutputs: []
  - id: '2'
    <ns0name:Value> obiExtractForSCM
    type: INVOKE_PLUGIN
    data:
      pluginName: FlexagonOBIEEPlugin
 <ns0:Expression>FDBLD_STREAM_NAME</ns0:Expression>     pluginOperation: obiExtractForSCM
      inputs:
     </ns0:Value>   - name: FDOBIEE_INP_EXPORT_FOLDER
          </ns0value:PluginInput>
               <ns0value:PluginInput> ../obieefiles/OBIEECatalog
            isExpression: false
   <ns0:Name>FDGIT_INP_DEPTH</ns0:Name>       isEncrypted: false
        -  <ns0:ValueType>Text</ns0:ValueType>name: FDOBIEE_INP_COPY_PERMISSIONS
          value:
       <ns0:Encrypted>false</ns0:Encrypted>     value: 'true'
            <ns1:Type>Integer</ns1:Type>isExpression: false
          isEncrypted: false
        - <ns0name:Text>1</ns0:Text>
 FDOBIEE_INP_PRESERVE_TIMESTAMPS
          value:
   </ns0:PluginInput>         value: 'false'
     <ns0:PluginInput>       isExpression: false
          <ns0:Name>FDGIT_INP_SPARSE_CHECKOUT_FOLDERS</ns0:Name>isEncrypted: false
      endpointInstanceOverride:
        isExpression: false
 <ns0:ValueType>Text</ns0:ValueType>     consumesArtifacts: false
      producesArtifacts: false
    <ns0:Encrypted>false</ns0:Encrypted>  endpointSelection:
        choice: All
      <ns1endpointExecution:Type>String</ns1:Type>
        choice: Any
        <ns0:Text>OBIEECatalog</ns0:Text>
outputs: []
      userInputs: []
      </ns0userOutputs:PluginInput> []
  - id: '3'
    name: Add </ns0:PluginInputs>any new Files
    type: INVOKE_PLUGIN
    <ns0data:UserInputs/>
      pluginName: FlexagonGITPlugin
     <ns0 pluginOperation:PluginOutputs/> add
      inputs:
    <ns0:UserOutputs/>    - name: FDGIT_INP_INSTANCE_CODE
   </ns0:InvokePlugin>       </ns0value:Step>
      <ns0:Step>      value: DEMOGIT
  <ns1:Name>obiExtractForSCM</ns1:Name>          <ns1:StepId>2</ns1isExpression:StepId> false
        <ns0:InvokePlugin>  isEncrypted: false
        - <ns0name:PluginName>FlexagonOBIEEPlugin</ns0:PluginName>
 FDGIT_INP_DEST_SUBFOLDER
           <ns0:PluginOperation>obiExtractForSCM</ns0:PluginOperation>value:
            <ns0:consumesArtifacts>false</ns0isExpression:consumesArtifacts> false
           <ns0:producesArtifacts>false</ns0:producesArtifacts>
isEncrypted: false
        - name:  <ns0:PluginInputs>FDGIT_INP_FILELIST
          value:
        <ns0:PluginInput>    value: '--all .'
            <ns0:Name>FDOBIEE_INP_EXPORT_FOLDER</ns0:Name>isExpression: false
          isEncrypted: false
      <ns0:ValueType>Text</ns0:ValueType>endpointInstanceOverride:
        isExpression: false
      consumesArtifacts: false
  <ns0:Encrypted>false</ns0:Encrypted>    producesArtifacts: false
      endpointSelection:
      <ns1:Type>String</ns1:Type>  choice: All
      endpointExecution:
        <ns0:Text>../obieefiles/OBIEECatalog</ns0:Text>
choice: Any
      outputs: []
      </ns0userInputs:PluginInput> []
      userOutputs: []
  -    <ns0id:PluginInput> '4'
    name: commit
    type: INVOKE_PLUGIN
     <ns0:Name>FDOBIEE_INP_COPY_PERMISSIONS</ns0:Name>data:
      pluginName: FlexagonGITPlugin
          <ns0:ValueType>Text</ns0:ValueType>
pluginOperation: commit
      inputs:
        -  <ns0:Encrypted>false</ns0:Encrypted>name: FDGIT_INP_INSTANCE_CODE
          value:
       <ns1:Type>Boolean</ns1:Type>     value: DEMOGIT
            <ns0:Text>true</ns0isExpression:Text> false
          isEncrypted: false
  </ns0:PluginInput>             </ns0:PluginInputs>
            <ns0:UserInputs/>
            <ns0:PluginOutputs/>
            <ns0:UserOutputs/>
         </ns0:InvokePlugin>
      </ns0:Step>
      <ns0:Step>
         <ns1:Name>Add any new Files</ns1:Name>
         <ns1:StepId>4</ns1:StepId>
         <ns0:InvokePlugin>
            <ns0:PluginName>FlexagonGITPlugin</ns0:PluginName>
            <ns0:PluginOperation>add</ns0:PluginOperation>
            <ns0:consumesArtifacts>false</ns0:consumesArtifacts>
            <ns0:producesArtifacts>false</ns0:producesArtifacts>
            <ns0:PluginInputs>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_INSTANCE_CODE</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>GITDEMO</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_DEST_SUBFOLDER</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>../obieefiles</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_FILELIST</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>--all .</ns0:Text>
               </ns0:PluginInput>
            </ns0:PluginInputs>
            <ns0:UserInputs/>
            <ns0:PluginOutputs/>
            <ns0:UserOutputs/>
         </ns0:InvokePlugin>
      </ns0:Step>
      <ns0:Step>
         <ns1:Name>Commit to Git</ns1:Name>
         <ns1:StepId>5</ns1:StepId>
         <ns0:InvokePlugin>
            <ns0:PluginName>FlexagonGITPlugin</ns0:PluginName>
            <ns0:PluginOperation>commit</ns0:PluginOperation>
            <ns0:consumesArtifacts>false</ns0:consumesArtifacts>
            <ns0:producesArtifacts>false</ns0:producesArtifacts>
            <ns0:PluginInputs>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_INSTANCE_CODE</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>GITDEMO</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_DEST_SUBFOLDER</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>../obieefiles</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_NAME</ns0:Name>
                  <ns0:ValueType>Expression</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Value>
                     <ns0:Expression>FD_WF_USER</ns0:Expression>
                  </ns0:Value>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_EMAIL</ns0:Name>
                  <ns0:ValueType>Expression</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Value>
                     <ns0:Expression>FD_WF_USER_EMAIL</ns0:Expression>
                  </ns0:Value>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_REVISION_MESSAGE</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>new obiee files</ns0:Text>
               </ns0:PluginInput>
            </ns0:PluginInputs>
            <ns0:UserInputs/>
            <ns0:PluginOutputs/>
            <ns0:UserOutputs/>
         </ns0:InvokePlugin>
      </ns0:Step>
      <ns0:Step>
         <ns1:Name>Push to Central Repository</ns1:Name>
         <ns1:StepId>6</ns1:StepId>
         <ns0:InvokePlugin>
 - name: FDGIT_INP_DEST_SUBFOLDER
          <ns0value:PluginName>FlexagonGITPlugin</ns0:PluginName>
            <ns0:PluginOperation>push</ns0isExpression:PluginOperation> false
           <ns0:consumesArtifacts>false</ns0:consumesArtifacts>isEncrypted: false
        - name: FDGIT_INP_NAME
 <ns0:producesArtifacts>false</ns0:producesArtifacts>         value:
   <ns0:PluginInputs>         value: FD_WF_USER
     <ns0:PluginInput>       isExpression: true
          <ns0:Name>FDGIT_INP_INSTANCE_CODE</ns0:Name>
isEncrypted: false
        - name: FDGIT_INP_EMAIL
      <ns0:ValueType>Text</ns0:ValueType>    value:
              <ns0:Encrypted>false</ns0:Encrypted>value: FD_WF_USER_EMAIL
            isExpression: true
    <ns1:Type>String</ns1:Type>      isEncrypted: false
        - name:  <ns0:Text>GITDEMO</ns0:Text>FDGIT_INP_REVISION_MESSAGE
          value:
     </ns0:PluginInput>       value: new obiee files
     <ns0:PluginInput>       isExpression: false
          <ns0:Name>FDGIT_INP_DEST_SUBFOLDER</ns0:Name>
isEncrypted: false
      endpointInstanceOverride:
          <ns0:ValueType>Text</ns0:ValueType>
isExpression: false
      consumesArtifacts: false
         <ns0:Encrypted>false</ns0:Encrypted>
producesArtifacts: false
      endpointSelection:
          <ns1:Type>String</ns1:Type>
  choice: All
      endpointExecution:
        <ns0:Text>../obieefiles</ns0:Text>
choice: Any
      outputs: []
      </ns0:PluginInput>userInputs: []
      userOutputs: []
  - id: '5'
    <ns0name:PluginInput> push
    type: INVOKE_PLUGIN
    data:
      <ns0:Name>FDGIT_INP_BRANCH</ns0:Name>
pluginName: FlexagonGITPlugin
      pluginOperation: push
      inputs:
  <ns0:ValueType>Expression</ns0:ValueType>      - name: FDGIT_INP_INSTANCE_CODE
          <ns0:Encrypted>false</ns0:Encrypted>value:
            value: DEMOGIT
      <ns1:Type>String</ns1:Type>      isExpression: false
           <ns0isEncrypted:Value> false
        - name: FDGIT_INP_DEST_SUBFOLDER
          <ns0:Expression>FDBLD_STREAM_NAME</ns0:Expression>value:
            isExpression: false
     </ns0:Value>     isEncrypted: false
        - </ns0:PluginInput>name: FDGIT_INP_BRANCH
          value:
    <ns0:PluginInput>        value: FDBLD_STREAM_NAME
         <ns0:Name>FDGIT_INP_FOLLOW_TAGS</ns0:Name>   isExpression: true
          isEncrypted: false
  <ns0:ValueType>Text</ns0:ValueType>      - name: FDGIT_INP_FOLLOW_TAGS
          <ns0:Encrypted>false</ns0value:Encrypted>
            value: 'false'
    <ns1:Type>Boolean</ns1:Type>        isExpression: false
          <ns0:Text>false</ns0:Text>isEncrypted: false
      endpointInstanceOverride:
        </ns0:PluginInput>isExpression: false
      consumesArtifacts: false
      </ns0producesArtifacts:PluginInputs> false
      endpointSelection:
    <ns0:UserInputs/>     choice: All
      <ns0endpointExecution:PluginOutputs/>
        choice: Any
  <ns0:UserOutputs/>    outputs: []
    </ns0:InvokePlugin>   userInputs: []
  </ns0:Step>    </ns0:Steps>
</ns0:WorkFlow>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 OBIEE WebCatolog.  The difference is that this operation does not require a package-based project and can be called from within a utility workflow.

...

  1. Clone the git repository where the objects are stored.

  2. Download WebCatalog files into local git repository folder. The download will be generally from a development environment. All files from the specified path will be downloaded.

  3. Add any new files in local the git repository.

  4. Commit any changes in the local git repository to the remote repository. It is possible that nothing is found to commit if there were no changes on development server.

  5. Push changes to remote repository.

Here is source code for the utility workflow. You will need to update the steps in the workflow according to your Git configuration (e.g. Git Instance, sparse checkout folder, etc.).

Expand
titleSample Workflow

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<ns0:WorkFlow xmlns:ns1="http://flexagon.com/flexdeploy/workflow/common" xmlns:ns0="http://flexagon.com/flexdeploy/workflow">
   <ns1:Name>syncOBIEEWebCatalogToGit</ns1:Name>
   <ns1:Description></ns1:Description>
   <ns0:Steps>
      <ns0:Step>
         <ns1:Name>Git Clone</ns1:Name>
         <ns1:StepId>1</ns1:StepId>
         <ns0:InvokePlugin>
            <ns0:PluginName>FlexagonGITPlugin</ns0:PluginName>
            <ns0:PluginOperation>clone</ns0:PluginOperation>
            <ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
            <ns0:consumesArtifacts>false</ns0:consumesArtifacts>
            <ns0:producesArtifacts>false</ns0:producesArtifacts>
            <ns0:EndpointSelection>
               <ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
            </ns0:EndpointSelection>
            <ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
            <ns0:PluginInputs>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_INSTANCE_CODE</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>FLEXTEST</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_DEST_SUBFOLDER</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text></ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_BRANCH</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>master</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_DEPTH</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>Integer</ns1:Type>
                  <ns0:Text>1</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_SPARSE_CHECKOUT_FOLDERS</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>OBIEE_12c</ns0:Text>
               </ns0:PluginInput>
            </ns0:PluginInputs>
            <ns0:UserInputs/>
            <ns0:PluginOutputs/>
            <ns0:UserOutputs/>
         </ns0:InvokePlugin>
      </ns0:Step>
      <ns0:Step>
         <ns1:Name>downloadWebCatalog</ns1:Name>
         <ns1:StepId>2</ns1:StepId>
         <ns0:InvokePlugin>
            <ns0:PluginName>FlexagonOBIEEPlugin</ns0:PluginName>
            <ns0:PluginOperation>downloadWebCatalog</ns0:PluginOperation>
            <ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
            <ns0:consumesArtifacts>false</ns0:consumesArtifacts>
            <ns0:producesArtifacts>false</ns0:producesArtifacts>
            <ns0:EndpointSelection>
               <ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
            </ns0:EndpointSelection>
            <ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
            <ns0:PluginInputs>
               <ns0:PluginInput>
                  <ns0:Name>FDOBIEE_INP_OBJECT_PATH</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>/shared/Sample Lite</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDOBIEE_INP_DOWNLOAD_PRJ_TYPE</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>Oracle BI 2.0</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDOBIEE_INP_DOWNLOAD_FOLDER</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>OBIEE_12c</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDOBIEE_INP_COPY_PERMISSIONS</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>Boolean</ns1:Type>
                  <ns0:Text>true</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDOBIEE_INP_PRESERVE_TIMESTAMPS</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>Boolean</ns1:Type>
                  <ns0:Text>false</ns0:Text>
               </ns0:PluginInput>
            </ns0:PluginInputs>
            <ns0:UserInputs/>
            <ns0:PluginOutputs/>
            <ns0:UserOutputs/>
         </ns0:InvokePlugin>
      </ns0:Step>
      <ns0:Step>
         <ns1:Name>Add any new Files</ns1:Name>
         <ns1:StepId>3</ns1:StepId>
         <ns0:InvokePlugin>
            <ns0:PluginName>FlexagonGITPlugin</ns0:PluginName>
            <ns0:PluginOperation>add</ns0:PluginOperation>
            <ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
            <ns0:consumesArtifacts>false</ns0:consumesArtifacts>
            <ns0:producesArtifacts>false</ns0:producesArtifacts>
            <ns0:EndpointSelection>
               <ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
            </ns0:EndpointSelection>
            <ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
            <ns0:PluginInputs>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_INSTANCE_CODE</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>FLEXTEST</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_DEST_SUBFOLDER</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text></ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_FILELIST</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>--all .</ns0:Text>
               </ns0:PluginInput>
            </ns0:PluginInputs>
            <ns0:UserInputs/>
            <ns0:PluginOutputs/>
            <ns0:UserOutputs/>
         </ns0:InvokePlugin>
      </ns0:Step>
      <ns0:Step>
         <ns1:Name>Commit to Git</ns1:Name>
         <ns1:StepId>4</ns1:StepId>
         <ns0:InvokePlugin>
            <ns0:PluginName>FlexagonGITPlugin</ns0:PluginName>
            <ns0:PluginOperation>commit</ns0:PluginOperation>
            <ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
            <ns0:consumesArtifacts>false</ns0:consumesArtifacts>
            <ns0:producesArtifacts>false</ns0:producesArtifacts>
            <ns0:EndpointSelection>
               <ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
            </ns0:EndpointSelection>
            <ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
            <ns0:PluginInputs>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_INSTANCE_CODE</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>FLEXTEST</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_DEST_SUBFOLDER</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text></ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_NAME</ns0:Name>
                  <ns0:ValueType>Expression</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Value>
                     <ns0:Expression>FD_WF_USER</ns0:Expression>
                  </ns0:Value>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_EMAIL</ns0:Name>
                  <ns0:ValueType>Expression</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Value>
                     <ns0:Expression>FD_WF_USER_EMAIL</ns0:Expression>
                  </ns0:Value>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_REVISION_MESSAGE</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>Files committed by FlexDeploy workflow</ns0:Text>
               </ns0:PluginInput>
            </ns0:PluginInputs>
            <ns0:UserInputs/>
            <ns0:PluginOutputs/>
            <ns0:UserOutputs/>
         </ns0:InvokePlugin>
      </ns0:Step>
      <ns0:Step>
         <ns1:Name>Push to Central Repository</ns1:Name>
         <ns1:StepId>5</ns1:StepId>
         <ns0:InvokePlugin>
            <ns0:PluginName>FlexagonGITPlugin</ns0:PluginName>
            <ns0:PluginOperation>push</ns0:PluginOperation>
            <ns0:InvokePluginTypeVersion>v2</ns0:InvokePluginTypeVersion>
            <ns0:consumesArtifacts>false</ns0:consumesArtifacts>
            <ns0:producesArtifacts>false</ns0:producesArtifacts>
            <ns0:EndpointSelection>
               <ns0:EndpointSelectionChoice>All</ns0:EndpointSelectionChoice>
            </ns0:EndpointSelection>
            <ns0:EndpointExecutionChoice>Any</ns0:EndpointExecutionChoice>
            <ns0:PluginInputs>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_INSTANCE_CODE</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>FLEXTEST</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_DEST_SUBFOLDER</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text></ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_BRANCH</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>String</ns1:Type>
                  <ns0:Text>master</ns0:Text>
               </ns0:PluginInput>
               <ns0:PluginInput>
                  <ns0:Name>FDGIT_INP_FOLLOW_TAGS</ns0:Name>
                  <ns0:ValueType>Text</ns0:ValueType>
                  <ns0:Encrypted>false</ns0:Encrypted>
                  <ns1:Type>Boolean</ns1:Type>
                  <ns0:Text>false</ns0:Text>
               </ns0:PluginInput>
            </ns0:PluginInputs>
            <ns0:UserInputs/>
            <ns0:PluginOutputs/>
            <ns0:UserOutputs/>
         </ns0:InvokePlugin>
      </ns0:Step>
   </ns0:Steps>
</ns0:WorkFlow>
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.

Tip

For Git, if you want the files placed in a sub-directory rather than the root of the repository, be sure to set the following on your workflow:

  • Clone step - Sparse Checkout Folder

  • downloadWebCatalog step - Download Folder (value should be same as Sparse Checkout Folder)

The OBIEE plugin supports two two different project types for package-based deployments (Oracle BI and Oracle BI 2.0 [recommended]).  It is important to understand which type you will be using for build and deployment, as each types expects a different format in its source files.  The downloadWebCatalog operation has an input called Project Target Type to select the format in which the objects are downloaded. 

...