Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions packages/pieces/community/oracle-fusion-cloud-erp/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
{
"extends": [
"../../../../.eslintrc.base.json"
],
"ignorePatterns": [
"!**/*"
],
"overrides": [
{
"files": [
"*.ts",
"*.tsx",
"*.js",
"*.jsx"
],
"rules": {}
},
{
"files": [
"*.ts",
"*.tsx"
],
"rules": {}
},
{
"files": [
"*.js",
"*.jsx"
],
"rules": {}
}
]
}
7 changes: 7 additions & 0 deletions packages/pieces/community/oracle-fusion-cloud-erp/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# pieces-oracle-fusion-cloud-erp

This library was generated with [Nx](https://nx.dev).

## Building

Run `nx build pieces-oracle-fusion-cloud-erp` to build the library.
10 changes: 10 additions & 0 deletions packages/pieces/community/oracle-fusion-cloud-erp/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"name": "@activepieces/piece-oracle-fusion-cloud-erp",
"version": "0.0.1",
"type": "commonjs",
"main": "./src/index.js",
"types": "./src/index.d.ts",
"dependencies": {
"tslib": "^2.3.0"
}
}
51 changes: 51 additions & 0 deletions packages/pieces/community/oracle-fusion-cloud-erp/project.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
{
"name": "pieces-oracle-fusion-cloud-erp",
"$schema": "../../../../node_modules/nx/schemas/project-schema.json",
"sourceRoot": "packages/pieces/community/oracle-fusion-cloud-erp/src",
"projectType": "library",
"release": {
"version": {
"manifestRootsToUpdate": [
"dist/{projectRoot}"
],
"currentVersionResolver": "git-tag",
"fallbackCurrentVersionResolver": "disk"
}
},
"tags": [],
"targets": {
"build": {
"executor": "@nx/js:tsc",
"outputs": [
"{options.outputPath}"
],
"options": {
"outputPath": "dist/packages/pieces/community/oracle-fusion-cloud-erp",
"tsConfig": "packages/pieces/community/oracle-fusion-cloud-erp/tsconfig.lib.json",
"packageJson": "packages/pieces/community/oracle-fusion-cloud-erp/package.json",
"main": "packages/pieces/community/oracle-fusion-cloud-erp/src/index.ts",
"assets": [
"packages/pieces/community/oracle-fusion-cloud-erp/*.md",
{
"input": "packages/pieces/community/oracle-fusion-cloud-erp/src/i18n",
"output": "./src/i18n",
"glob": "**/!(i18n.json)"
}
],
"buildableProjectDepsInPackageJsonType": "dependencies",
"updateBuildableProjectDepsInPackageJson": true
}
},
"nx-release-publish": {
"options": {
"packageRoot": "dist/{projectRoot}"
}
},
"lint": {
"executor": "@nx/eslint:lint",
"outputs": [
"{options.outputFile}"
]
}
}
}
119 changes: 119 additions & 0 deletions packages/pieces/community/oracle-fusion-cloud-erp/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@

import {
createPiece,
PieceAuth,
Property,
} from '@activepieces/pieces-framework';
import { PieceCategory } from '@activepieces/shared';
import { createCustomApiCallAction } from '@activepieces/pieces-common';

const authDesc = `
Connect to your Oracle Fusion Cloud ERP instance using Basic Authentication.

**Required:**
- **Server URL**: Your Oracle Fusion instance URL (e.g., https://your-instance.fa.us2.oraclecloud.com)
- **Username**: Your Oracle Cloud username with API access
- **Password**: Your Oracle Cloud password

Contact your Oracle administrator if you need REST API access enabled.
`;

export const oracleFusionCloudErpAuth = PieceAuth.CustomAuth({
description: authDesc,
required: true,
props: {
serverUrl: Property.ShortText({
displayName: 'Server URL',
description: 'Your Oracle Fusion Cloud instance URL (e.g., https://your-instance.fa.us2.oraclecloud.com)',
required: true,
}),
username: Property.ShortText({
displayName: 'Username',
description: 'Your Oracle Cloud username',
required: true,
}),
password: PieceAuth.SecretText({
displayName: 'Password',
description: 'Your Oracle Cloud password',
required: true,
}),
},
});

import {
createInvoice,
getInvoice,
findInvoices,
updateInvoice,
deleteInvoice,
validateInvoice,
cancelInvoice,
} from './lib/actions/invoices';
import {
createReceivablesInvoice,
getReceivablesInvoice,
findReceivablesInvoices,
updateReceivablesInvoice,
deleteReceivablesInvoice,
} from './lib/actions/receivables-invoices';
import {
createPayment,
getPayment,
findPayments,
updatePayment,
stopPayment,
voidPayment,
} from './lib/actions/payments';
import {
getJournalBatch,
findJournalBatches,
updateJournalBatch,
deleteJournalBatch,
} from './lib/actions/journal-batches';

export const oracleFusionCloudErp = createPiece({
displayName: 'Oracle Fusion Cloud ERP',
description: 'Enterprise resource planning suite covering financials, procurement, project accounting, supply chain, and more.',
minimumSupportedRelease: '0.36.1',
logoUrl: 'https://cdn.activepieces.com/pieces/oracle-fusion-cloud-erp.png',
authors: ['owuzo', 'onyedikachi-david'],
categories: [PieceCategory.ACCOUNTING],
auth: oracleFusionCloudErpAuth,
actions: [
createInvoice,
getInvoice,
findInvoices,
updateInvoice,
deleteInvoice,
validateInvoice,
cancelInvoice,
createReceivablesInvoice,
getReceivablesInvoice,
findReceivablesInvoices,
updateReceivablesInvoice,
deleteReceivablesInvoice,
createPayment,
getPayment,
findPayments,
updatePayment,
stopPayment,
voidPayment,
getJournalBatch,
findJournalBatches,
updateJournalBatch,
deleteJournalBatch,
createCustomApiCallAction({
baseUrl: (auth) =>
`${auth?.props.serverUrl}/fscmRestApi/resources/11.13.18.05`,
auth: oracleFusionCloudErpAuth,
authMapping: async (auth) => {
const { username, password } = auth.props;
return {
Authorization: `Basic ${Buffer.from(`${username}:${password}`).toString('base64')}`,
};
},
}),
],
triggers: [],
});

Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import { createAction, Property } from '@activepieces/pieces-framework';
import { oracleFusionCloudErpAuth } from '../../../index';
import { makeClient } from '../../common/client';

export const cancelInvoice = createAction({
auth: oracleFusionCloudErpAuth,
name: 'cancel_invoice',
displayName: 'Cancel Invoice',
description: 'Cancels a payables invoice in Oracle Fusion Cloud ERP.',
props: {
invoiceId: Property.ShortText({
displayName: 'Invoice ID',
description: 'The unique identifier of the invoice to cancel.',
required: true,
}),
},
async run(context) {
const client = makeClient(context.auth.props);
const { invoiceId } = context.propsValue;

const response = await client.executeAction('/invoices/action/cancelInvoice', {
InvoiceId: invoiceId,
});
return response;
},
});
Loading
Loading