Versions Compared

Key

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

This can be used for AOL and various other types of files that support download option from EBS.

In this example, we will talk about committing LDT files to Git, but this option would apply to other Source Control as well, just plugin operations used to commit files will change.

Let's first create Git (or any other SCM) instance in Topology - Integrations section. If you already have SCM Integration Instance created, you can skip this step. Here is an example of Git instance, we will call it EBSDemo.

Next Step is to create Workflow. We will call it Extract LDT. This will be of Build Type.

image-20240531-090305.pngImage Removedimage-20240531-090305.pngImage Added

There will be 5 steps in this workflow for Extracting files and commit to Git. If you are using Git, you can just paste Source shown below in Source popup of your workflow.

Make sure to change GIT1 instance code to your Instance Code if you are using different Instance code for Git. That would need to be updated in Git Clone, Add any new Files, Commit to Git, Push to Central Repository operations.

If you are using other SCM, then you will need to use proper operations for commit of files. Basic steps will be to checkout code, copy files in it and commit.

image-20240531-085608.pngImage Removedimage-20240531-085608.pngImage Added
Extract LDT workflow source
Code Block
languagexml
name: Extract LDT
description: ''
steps:
  - id: '1'
    name: Extract LDT Files from EBS
    type: INVOKE_PLUGIN
    data:
      pluginName: FlexagonEBSPlugin
      pluginOperation: build
      inputs:
        - name: FDEBS_INP_INCLUDE_FILES
          value:
            isExpression: false
          isEncrypted: false
      endpointInstanceOverride:
        isExpression: false
      consumesArtifacts: false
      producesArtifacts: false
      endpointSelection:
        choice: All
      endpointExecution:
        choice: Any
      outputs: []
      userInputs: []
      userOutputs: []
  - id: '2'
    name: Git Clone
    type: INVOKE_PLUGIN
    data:
      pluginName: FlexagonGITPlugin
      pluginOperation: clone
      inputs:
        - name: FDGIT_INP_INSTANCE_CODE
          value:
            value: EMILYGIT
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_DEST_SUBFOLDER
          value:
            value: ../ebsldtfiles
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_BRANCH
          value:
            value: FDBLD_STREAM_NAME
            isExpression: true
          isEncrypted: false
        - name: FDGIT_INP_DEPTH
          value:
            value: '1'
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_SPARSE_CHECKOUT_FOLDERS
          value:
            value: EBSCustomizations/XXHR/import
            isExpression: false
          isEncrypted: false
      endpointInstanceOverride:
        isExpression: false
      consumesArtifacts: false
      producesArtifacts: false
      endpointSelection:
        choice: All
      endpointExecution:
        choice: Any
      outputs: []
      userInputs: []
      userOutputs: []
  - id: '3'
    name: Copy downloaded files to Git Repository
    type: INVOKE_PLUGIN
    data:
      pluginName: FlexagonFilePlugin
      pluginOperation: copy
      inputs:
        - name: FDFILE_INP_FILE_FILTER
          value:
            value: '*.ldt'
            isExpression: false
          isEncrypted: false
        - name: FDFILE_INP_FILE_FILTER_EXCLUDED
          value:
            isExpression: false
          isEncrypted: false
        - name: FDFILE_INP_SOURCE_PATH
          value:
            value: FD_TEMP_DIR
            isExpression: true
          isEncrypted: false
        - name: FDFILE_INP_TARGET_PATH
          value:
            value: FD_TEMP_DIR + '/../ebsldtfiles'
            isExpression: true
          isEncrypted: false
        - name: FDFILE_INP_CLEAN_DIRECTORY
          value:
            value: 'false'
            isExpression: false
          isEncrypted: false
      endpointInstanceOverride:
        isExpression: false
      consumesArtifacts: false
      producesArtifacts: false
      endpointSelection:
        choice: All
      endpointExecution:
        choice: Any
      outputs: []
      userInputs: []
      userOutputs: []
  - id: '4'
    name: Add any new Files
    type: INVOKE_PLUGIN
    data:
      pluginName: FlexagonGITPlugin
      pluginOperation: add
      inputs:
        - name: FDGIT_INP_INSTANCE_CODE
          value:
            value: EMILYGIT
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_DEST_SUBFOLDER
          value:
            value: ../ebsldtfiles
            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: '5'
    name: Commit to Git
    type: INVOKE_PLUGIN
    data:
      pluginName: FlexagonGITPlugin
      pluginOperation: commit
      inputs:
        - name: FDGIT_INP_INSTANCE_CODE
          value:
            value: EMILYGIT
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_DEST_SUBFOLDER
          value:
            value: ../ebsldtfiles
            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: New ldt files added from FlexDeploy
            isExpression: false
          isEncrypted: false
      endpointInstanceOverride:
        isExpression: false
      consumesArtifacts: false
      producesArtifacts: false
      endpointSelection:
        choice: All
      endpointExecution:
        choice: Any
      outputs: []
      userInputs: []
      userOutputs: []
  - id: '6'
    name: Push to Central Repository
    type: INVOKE_PLUGIN
    data:
      pluginName: FlexagonGITPlugin
      pluginOperation: push
      inputs:
        - name: FDGIT_INP_INSTANCE_CODE
          value:
            value: EMILYGIT
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_DEST_SUBFOLDER
          value:
            value: ../ebsldtfiles
            isExpression: false
          isEncrypted: false
        - name: FDGIT_INP_BRANCH
          value:
            value: master
            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: []

Now that we have Workflow and Topology setup completed, last step is create Project for execution. We will create Extract LDT to GIT project. You can create this project in any application of your choice. Make sure to give name that makes sense to you, select Partial Deployments, and select EBS as Project Type.

Image RemovedImage Added

When you create Project, it will automatically open. Click on Configurations tab and configure as shown in below screen shot.

  • SCM Type - None

  • Build Workflow - Extract LDT

  • Build Instance - EBS (can be different in your setup)

  • Streams - create more streams as necessary to indicate Git (or other SCM) branches. In this case we will go ahead with master for now.

  • Click Save.

Image RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage Added

Now go to Project Properties. Filter for application and enter Custom Top code and click Save at the bottom of the page.

Image RemovedImage Added

Now we can create AOL object definition. This step will repeat for each AOL object that you want to extract from EBS environment. In this example, we are showing LDT files, but you can download other types of files as well.

  1. Select packages tab in the project.

  2. Click File Catalog on the right side.

  3. Click Create

  4. Select Application Object Library for type.

  5. Enter path for output file name for extracted LDT. This path should match with location in Git repository. Otherwise you need to adjust copy in Extract LDT workflow accordingly. Path name will generally end with .ldt.

  6. Click Evaluate.

  7. Change Type and Name as appropriate.

  8. Change any other attributes if necessary.

  9. Click Evaluate.

  10. Click Save.

Image RemovedImage Added

You can add more files later if necessary. Now let's execute Build for this project. In this example, I am showing only one file extract but you can run All Files or selectively run for one or more files. Let's start by clicking the Packages tab - Create.

Image RemovedImage RemovedImage RemovedImage RemovedImage AddedImage AddedImage AddedImage Added

Now,

  • Select environment where you want to Extract files from. You must make sure that Environment is marked as Build Environment on Topology, otherwise it will not show up here in Environment list.

  • Select specific Stream (branch) where you want to commit files.

  • Click Force Build

  • Click Submit.

Image RemovedImage Added

You can review execution details as well. Alternatively, you can just download the zip file from Artifacts tab and commit the files yourself after reviewing it, if that makes sense to do so. This guide just provides one example with Git, but you can follow this to commit files to your choice of SCM or rely on developers to commit files to SCM.