npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mft2hcm

v1.0.10

Published

NodeJS app to copy files from MFT flow to UCM and Oracle HCM

Downloads

29

Readme

MFT2HCM

A simple REST utility for uploading or downloading files from command line or a Managed File Transfer server callout to Oracle WebCenter and HCM SaaS service. The tool utilizes the node "mft-upload" package and provides SOAP substitution templates for WebCenter(UCM) and Oracle HCM. File delivery to HCM for import use case is a 2 phase web service process to upload the file to WCC/UCM followed by a notification invocation of the Oracle HCM SOAP Web Services. Additionally HCM files can be exported into UCM and downloaded for HCM extract use case.

See the information below on the Oracle HCM File Based Laoder https://docs.oracle.com/cloud/latest/common/FAIHM/F1415008AN10ABB.htm#F1415008AN10ABB

Use Cases

HCM Load

The MFT server receives files from any Source protocol such as SFTP, SOAP, local file system or a back end integration process. The file can be decrypted, uncompressed or validated before a Source or Target pre-processing callout uploads it to UCM then notifies HCM to initiate the batch load. Finally the original file is backed up into the local file system, remote SFTP server or an cloud based storage service. An optional notification can also be delivered to the caller using a Target post-processing callout upon successful completion. The MFT server can live in either on premise or a cloud iPaaS hosted environment. Configuration files for this use case are shown below.

HCM Extract

An external event or schedule triggers the MFT server to search for a file in UCM using a search query. Once a document id is indentified, it is retrived using a Source Pre-Processing callout which injects the retrieved file into the MFT Transfer. The file can then be decrypted, validated, decompressed before being sent to an MFT Target of any protocol such as SFTP, File system, SOAP Web Service or a back end interation process. Finally the original file is backed up into the local file system, remote SFTP server or an cloud based storage service. An optional notification can also be delivered to the caller using a Target post-processing callout upon successful completion. The MFT server can live in either on premise or a cloud iPaaS hosted environment. Configuration files for this use case are shown below.

Prerequisites

It is assumed you have knowledge and a working MFT server installed such as Oracle MFT Oracle WebCeneter(UCM), Oracle HCM. The SOAP interfaces are documented in the above Oracle HCM documentation.

Installation

create HCM_HOME home folder. Ex: mkdir /app/hcm

create node_modules subfolder. Ex: mkdir /app/hcm/node_modules

go to HCM_HOME. Ex: cd /app/hcm

npm install mft2hcm

Edit mft2hcm.js then change first line to match the location of your nodeJS install location. I.E.: #!/usr/local/node/bin/node

Quick Start

HCM Load

Edit mft2hcm.json then change request.url, request.auth information to match your UCM/WCC environment.

Edit hcm.json then change request.url, request.auth information to match your HCM environment.

Execute command: mft2hcm.js config=mft2hcm.json file=[HCM_ZIP_FILE] dir=[LOCAL_DIR]

HCM Extract

Edit ucmsearch.json then change request.url, request.auth information to match your UCM/WCC environment.

Edit ucmget.json then change request.url, request.auth information to match your UCM/WCC environment.

Execute command: node mft2hcm.js config=ucmsearch.json file=UCM-PAYLOAD-SEARCH searchfile=[DOC_TITLE] dir=[LOCAL_DIR] docidfile=[FILE_SPEC]

Usage

Command Line

node mft2hcm.js file=[FILE SPEC] | [config=mft2hcm.json searchfile=[SEARCH_SPEC] passwords='PASS1 PASS2' dir=[FILE_LOCATION] businessobject=[HCM_OBJECT TYPE] docidfile=[FILE_SPEC]

file: location of input file
config: location of JSON config file
searchfile: file pattern to search for files in WebCenter/UCM
passwords: array of passwords for for WebCenter, HCM etc endpoints
dir: directory location of the file 
businessobject: HCM Object Type optionally substituted into the WebCenter/UCM PUT template
docidfile: file location on shared file system used to identify document id of files already processed.

Config Files

The config file is the same format as what is used in mft-upload and makes use of the "cfgarr" config array to make multiple SOAP calls as shown below. It embeds and reuses the request type endpoint and authentication used by the HTTP Request package.

The following 2 files are used together to implement the "Load and Notify" HCM Import use case. The first is an example of the mft2hcm.json config file that uses the cfgarr property to chain to the next config file that notifies the HCM server..

mft2hcm.json
{
  "type": "UCM",
  "template":    "UCM-PAYLOAD-PUT",
  "cfgarr": [
        { "config": "hcm.json", "file": "HCM-PAYLOAD"}
  ],
  "request": {
    "url": "http://HOSTNAME:10613/idcws/GenericSoapPort",
    "method": "POST",
    "headers": { "Content-Type": "text/xml; charset=utf-8" },
    "auth": { "user": "USERNAME", "pass": "" }
  }
}

This is an example of the hcm.json config file that invokes the HCM File Based Loader SOAP Service

hcm.json
{
  "type": "HCM",
  "ctype": "text",
  "reqtemps": false,
  "request": {
    "rejectUnauthorized": false, // for non trusted CA's
    "url": "https://HOSTNAME:10620/hcmCommonBatchLoader/LoaderIntegrationService",
    "method": "POST",
    "headers": {
        "Content-Type": "text/xml; charset=utf-8",
        "Connection": "Keep-Alive"
        },
    "auth": { "user": "USERNAME", "pass": "" },
    "agentOptions": {
        "ca": "hcmcert.cer",
        "Connection": "Keep-Alive",
        "securityOptions": "SSL_OP_NO_SSLv3"
    }
  }
}

These 2 config files are used together to implement the "Search and Get" HCM Export use case. The first is an example of the ucmsearch.json config file that links to the ucmget.json config file once the search is successfully completed.

ucmsearch.json
{
  "type": "UCMSEARCH",
  "ctype": "text",
  "reqtemps": false,
  "cfgarr": [
        { "config": "ucmget.json", "file": "UCM-PAYLOAD-GET"}
  ],
  "request": {
    "url": "http://HOSTNAME:10613/idcws/GenericSoapPort",
    "method": "POST",
    "headers": { "Content-Type": "text/xml; charset=utf-8" },
    "auth": { "user": "USERNAME", "pass": "PASSWORD" }
  }
}
ucmget.json
{ 
  "type": "UCMGET",
  "ctype": "text",
  "reqtemps": false,
  "request": {
    "url": "http://HOSTNAME:10613/idcws/GenericSoapPort",
    "method": "POST",
    "encoding": "binary",
    "headers": { "Content-Type": "text/xml; charset=utf-8" },
    "auth": { "user": "USERNAME", "pass": "PASSWORD" }
  }
}

Config File Notes

  • If the config argument is not provided, mft2hcm.js looks for one at $HOME/.mft/mft2hcm.json
  • Passwords in the request config file are overridden by the "passwords" space delimited cmd line argument.
  • Config types of UCMSEARCH and HCM send the template as the payload as shown by the '"reqtemps": false' property

Template Files

UCM-PAYLOAD-SEARCH

UCM-PAYLOAD-SEARCH is used for the first step of Search/Get use case and uses the following substitution variables.

%%USERNAME%%, %%PASSWORD%%, %%ISOTIME%%, %%SEARCHFILE%%

UCM-PAYLOAD-GET

UCM-PAYLOAD-GET is used for the second step of Search/Get use case and uses the following substitution variables.

%%USERNAME%%, %%PASSWORD%%, %%ISOTIME%%, %%DOCID%%

UCM-PAYLOAD-PUT

UCM-PAYLOAD-PUT is used for the first step of Load and Notify use case and uses the following substitution variables.

%%USERNAME%%, %%PASSWORD%%, %%ISOTIME%%, %%FILEBASE%%, %%FILEBODY%%

HCM-PAYLOAD

HCM-PAYLOAD is used for the first step of Load and Notify use case and uses the following substitution variables.

%%USERNAME%%, %%PASSWORD%%, %%ISOTIME%%, %%BUSINESSOBJECT%%

Testing

This package does not have it's own testing commands. See the underlying mft-upload tests and uses the following substitution variables.

History

Created: June 22, 2015

Credits

Dave Berry A.K.A (bigfiles)

License

ISC