autoforce 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -6
- package/bin/index.js +6 -0
- package/commands/new/issue.json +40 -0
- package/commands/new/process.json +21 -0
- package/commands/subtasks/checkout-branch.json +60 -0
- package/commands/subtasks/create-pull.json +20 -0
- package/commands/subtasks/create-scratch.json +84 -0
- package/commands/subtasks/deploy-code.json +17 -0
- package/commands/subtasks/drop-scratch.json +17 -0
- package/commands/subtasks/package-code.json +3 -0
- package/commands/subtasks/publish-branch.json +20 -0
- package/commands/subtasks/update-documentation.json +8 -0
- package/commands/subtasks/validate-code.json +29 -0
- package/commands/subtasks/validate-scratch.json +14 -0
- package/commands/tasks/cancel.json +6 -0
- package/commands/tasks/deploy.json +6 -0
- package/commands/tasks/finish.json +41 -0
- package/commands/tasks/rollback.json +6 -0
- package/commands/tasks/start.json +60 -0
- package/commands/tasks/stop.json +32 -0
- package/commands/tasks/switch.json +53 -0
- package/commands/tasks/view.json +12 -0
- package/lib/auto.js +30 -15
- package/lib/helpers/class.js +2 -2
- package/lib/helpers/context.d.ts +1 -1
- package/lib/helpers/context.js +24 -28
- package/lib/helpers/github-graphql.d.ts +1 -76
- package/lib/helpers/github-graphql.js +331 -363
- package/lib/helpers/lwc.js +2 -2
- package/lib/helpers/metadata.js +2 -2
- package/lib/helpers/object.js +2 -2
- package/lib/helpers/tasks.js +10 -5
- package/lib/helpers/util.d.ts +4 -1
- package/lib/helpers/util.js +45 -2
- package/package.json +11 -5
- package/templates/dictionary/class-all.md +9 -0
- package/templates/dictionary/class-diagrama.md +13 -0
- package/templates/dictionary/class-inner.md +19 -0
- package/templates/dictionary/class-metodos.md +15 -0
- package/templates/dictionary/class-public.md +13 -0
- package/templates/dictionary/class-referencias.md +5 -0
- package/templates/dictionary/class.md +29 -0
- package/templates/dictionary/classes.md +52 -0
- package/templates/dictionary/object.md +35 -0
- package/templates/dictionary/objects.md +63 -0
- package/templates/intro.md +20 -0
- package/templates/process.md +23 -0
- package/templates/story.md +32 -0
- package/templates/usecase.md +52 -0
package/lib/helpers/lwc.js
CHANGED
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
10
10
|
import sf from "./connect.js";
|
11
11
|
import templateGenerator from "./template.js";
|
12
12
|
const templateEngine = templateGenerator("dictionary", "md");
|
13
|
-
import { sortByName, splitFilename, DICTIONARY_FOLDER,
|
13
|
+
import { sortByName, splitFilename, DICTIONARY_FOLDER, TEMPLATES_FOLDER } from "./util.js";
|
14
14
|
function getMetadata(lwc) {
|
15
15
|
return __awaiter(this, void 0, void 0, function* () {
|
16
16
|
try {
|
@@ -59,7 +59,7 @@ function executeLwc(items, filename, folder) {
|
|
59
59
|
templateEngine.render(lwcContext, {
|
60
60
|
helpers: {}
|
61
61
|
});
|
62
|
-
templateEngine.save(filename,
|
62
|
+
templateEngine.save(filename, TEMPLATES_FOLDER + "/" + folder);
|
63
63
|
});
|
64
64
|
}
|
65
65
|
const lwcModule = {
|
package/lib/helpers/metadata.js
CHANGED
@@ -10,7 +10,7 @@ const helpers = {
|
|
10
10
|
export default helpers;
|
11
11
|
/*
|
12
12
|
import context from "./context.js";
|
13
|
-
import {
|
13
|
+
import { TEMPLATES_FOLDER } from "./util.js";
|
14
14
|
import type { DocumentationModule, IProcessInfo, IMetadataNode, IMetadataComponentNode } from "../types/auto.js";
|
15
15
|
function getMetadataFromContext(components: string[]) {
|
16
16
|
return getMetadataArray(context.getProcessMetadata(), components);
|
@@ -66,7 +66,7 @@ function getMetadataArray(metadata: IProcessInfo[], props: string[]) {
|
|
66
66
|
return items;
|
67
67
|
};
|
68
68
|
|
69
|
-
return getItemsFromTree({ folder:
|
69
|
+
return getItemsFromTree({ folder: TEMPLATES_FOLDER, childs: metadata });
|
70
70
|
}
|
71
71
|
|
72
72
|
export async function execute() {
|
package/lib/helpers/object.js
CHANGED
@@ -10,7 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
10
10
|
import sf from "./connect.js";
|
11
11
|
import templateGenerator from "./template.js";
|
12
12
|
const templateEngine = templateGenerator("dictionary", "md");
|
13
|
-
import { sortByLabel, DICTIONARY_FOLDER,
|
13
|
+
import { sortByLabel, DICTIONARY_FOLDER, TEMPLATES_FOLDER, } from "./util.js";
|
14
14
|
function getMetadata(objetos) {
|
15
15
|
return __awaiter(this, void 0, void 0, function* () {
|
16
16
|
try {
|
@@ -123,7 +123,7 @@ function executeObjects(items, filename, folder) {
|
|
123
123
|
templateEngine.render(objectContext, {
|
124
124
|
helpers: { isManaged, isMetadataFormula, attributesFormula }
|
125
125
|
});
|
126
|
-
templateEngine.save(filename,
|
126
|
+
templateEngine.save(filename, TEMPLATES_FOLDER + "/" + folder);
|
127
127
|
});
|
128
128
|
}
|
129
129
|
const objectModule = {
|
package/lib/helpers/tasks.js
CHANGED
@@ -7,15 +7,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
8
|
});
|
9
9
|
};
|
10
|
-
import context from "./context.js";
|
10
|
+
import context, { initializeContext } from "./context.js";
|
11
11
|
import { logError, logStep } from "./color.js";
|
12
12
|
import fs from "fs";
|
13
|
-
import { getFiles, filterJson } from "./util.js";
|
13
|
+
import { getFiles, filterJson, searchInFolderHierarchy } from "./util.js";
|
14
14
|
import { validateCommand, validateFunction, executeFunction, executeCommand, taskFunctions } from "./taskFunctions.js";
|
15
15
|
import prompts from "prompts";
|
16
|
-
|
17
|
-
|
18
|
-
export const
|
16
|
+
import { fileURLToPath } from 'url';
|
17
|
+
const COMMAND_FOLDER = searchInFolderHierarchy('commands', fileURLToPath(import.meta.url));
|
18
|
+
export const TASKS_FOLDER = `${COMMAND_FOLDER}/tasks`;
|
19
|
+
export const SUBTASKS_FOLDER = `${COMMAND_FOLDER}/subtasks`;
|
20
|
+
export const NEW_FOLDER = `${COMMAND_FOLDER}/new`;
|
19
21
|
export function getTaskFolder(command) {
|
20
22
|
const folders = {
|
21
23
|
'task': TASKS_FOLDER,
|
@@ -70,6 +72,7 @@ export function helpTask(task) {
|
|
70
72
|
});
|
71
73
|
}
|
72
74
|
export function validateTask(task) {
|
75
|
+
initializeContext();
|
73
76
|
if (task.guards) {
|
74
77
|
// Valida que sea
|
75
78
|
}
|
@@ -103,6 +106,7 @@ export function validateTask(task) {
|
|
103
106
|
}
|
104
107
|
export function runTask(task, taskContext, tabs = '') {
|
105
108
|
return __awaiter(this, void 0, void 0, function* () {
|
109
|
+
initializeContext();
|
106
110
|
// Valida que este ya esten las variables de enotorno y configuracion
|
107
111
|
if (task.guards) {
|
108
112
|
yield context.validate(task.guards);
|
@@ -128,6 +132,7 @@ export function runTask(task, taskContext, tabs = '') {
|
|
128
132
|
}
|
129
133
|
export function previewTask(task, tabs = '') {
|
130
134
|
return __awaiter(this, void 0, void 0, function* () {
|
135
|
+
initializeContext();
|
131
136
|
logStep(`${task.name}: ${task.description}`, tabs);
|
132
137
|
for (const step of task.steps) {
|
133
138
|
previewStep(step, tabs);
|
package/lib/helpers/util.d.ts
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
export declare const
|
1
|
+
export declare const TEMPLATES_FOLDER: string;
|
2
2
|
export declare const DICTIONARY_FOLDER: string;
|
3
3
|
export declare const WORKING_FOLDER: string;
|
4
|
+
export declare const CONFIG_FILE: string;
|
5
|
+
export declare function createConfigurationFile(): Promise<boolean>;
|
4
6
|
export declare function sortByName(objA: {
|
5
7
|
Name: string;
|
6
8
|
}, objB: {
|
@@ -26,6 +28,7 @@ export declare const filterFiles: (fullPath: string) => boolean;
|
|
26
28
|
* @param {string[]} newArray El array de elementos a agregar
|
27
29
|
*/
|
28
30
|
export declare function addNewItems(baseArray: string[], newArray: string[]): void;
|
31
|
+
export declare function searchInFolderHierarchy(element: string, parentFolder: string): string;
|
29
32
|
export declare function getFiles(source: string, filter?: (file: string) => boolean, recursive?: boolean, ignoreList?: string[]): string[];
|
30
33
|
export declare function convertNameToKey(name: string): string;
|
31
34
|
export declare function convertKeyToName(key: string): string;
|
package/lib/helpers/util.js
CHANGED
@@ -1,7 +1,35 @@
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
+
});
|
9
|
+
};
|
1
10
|
import fs from "fs";
|
2
|
-
|
3
|
-
export const
|
11
|
+
import { fileURLToPath } from 'url';
|
12
|
+
export const TEMPLATES_FOLDER = searchInFolderHierarchy('templates', fileURLToPath(import.meta.url));
|
13
|
+
export const DICTIONARY_FOLDER = TEMPLATES_FOLDER + "/diccionarios";
|
4
14
|
export const WORKING_FOLDER = process.env.INIT_CWD || ".";
|
15
|
+
export const CONFIG_FILE = process.cwd() + '/.autoforce.json';
|
16
|
+
export function createConfigurationFile() {
|
17
|
+
return __awaiter(this, void 0, void 0, function* () {
|
18
|
+
console.log('Preguntar por GitHub o GitLab');
|
19
|
+
console.log('Chequear las variables de entorno');
|
20
|
+
console.log('Tema proyecto guardar la referencia');
|
21
|
+
console.log('Genera documentacion');
|
22
|
+
console.log('Direccion de las carpetas');
|
23
|
+
const config = { projectNumber: 1 };
|
24
|
+
try {
|
25
|
+
fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
|
26
|
+
}
|
27
|
+
catch (_a) {
|
28
|
+
throw new Error(`No se pudo guardar la configuracion en ${CONFIG_FILE}`);
|
29
|
+
}
|
30
|
+
return true;
|
31
|
+
});
|
32
|
+
}
|
5
33
|
export function sortByName(objA, objB) {
|
6
34
|
return objA.Name > objB.Name ? 1 : objA.Name < objB.Name ? -1 : 0;
|
7
35
|
}
|
@@ -58,6 +86,21 @@ export function addNewItems(baseArray, newArray) {
|
|
58
86
|
}
|
59
87
|
}
|
60
88
|
}
|
89
|
+
export function searchInFolderHierarchy(element, parentFolder) {
|
90
|
+
if (fs.existsSync(`${parentFolder}/${element}`)) {
|
91
|
+
return `${parentFolder}/${element}`;
|
92
|
+
}
|
93
|
+
else {
|
94
|
+
const lastIndex = parentFolder.lastIndexOf('/');
|
95
|
+
if (lastIndex !== -1) {
|
96
|
+
const newParentFolder = parentFolder.substring(0, lastIndex);
|
97
|
+
if (newParentFolder !== '') {
|
98
|
+
return searchInFolderHierarchy(element, newParentFolder);
|
99
|
+
}
|
100
|
+
}
|
101
|
+
}
|
102
|
+
return '';
|
103
|
+
}
|
61
104
|
export function getFiles(source, filter = (file) => file !== undefined, recursive = false, ignoreList = []) {
|
62
105
|
const files = [];
|
63
106
|
for (const file of fs.readdirSync(source)) {
|
package/package.json
CHANGED
@@ -2,16 +2,22 @@
|
|
2
2
|
"name": "autoforce",
|
3
3
|
"homepage": "https://sebastianclaros.github.io/autoforce",
|
4
4
|
"private": false,
|
5
|
-
"version": "0.1.
|
5
|
+
"version": "0.1.4",
|
6
6
|
"description": "Developer Automation tool for Github / Gitlab and Salesforce projects.",
|
7
7
|
"repository": {
|
8
8
|
"type": "git",
|
9
9
|
"url": "git+https://github.com/sebastianclaros/autoforce.git"
|
10
10
|
},
|
11
|
-
"main": "./
|
11
|
+
"main": "./bin/index.js",
|
12
12
|
"files": [
|
13
|
-
"
|
13
|
+
"commands/**/*",
|
14
|
+
"templates/**/*",
|
15
|
+
"lib/**/*",
|
16
|
+
"bin/**/*"
|
14
17
|
],
|
18
|
+
"bin": {
|
19
|
+
"autoforce": "./bin/index.js"
|
20
|
+
},
|
15
21
|
"type": "module",
|
16
22
|
"scripts": {
|
17
23
|
"prebuild": "rm -rf ./lib/",
|
@@ -20,7 +26,7 @@
|
|
20
26
|
"test:build": "yarn build && npm publish --dry-run && node ./bin/index.js",
|
21
27
|
"test": "jest --config jest.config.js"
|
22
28
|
},
|
23
|
-
"
|
29
|
+
"devDependencies": {
|
24
30
|
"@eslint/js": "^9.9.1",
|
25
31
|
"@types/jest": "29.4.0",
|
26
32
|
"@typescript-eslint/eslint-plugin": "5.54.0",
|
@@ -37,7 +43,7 @@
|
|
37
43
|
"typescript": "4.9.5",
|
38
44
|
"typescript-eslint": "^8.3.0"
|
39
45
|
},
|
40
|
-
"
|
46
|
+
"dependencies": {
|
41
47
|
"@octokit/graphql": "^8.1.1",
|
42
48
|
"@types/graphql": "^14.5.0",
|
43
49
|
"@types/jsforce": "^1.11.5",
|
@@ -0,0 +1,9 @@
|
|
1
|
+
{{#each properties}}
|
2
|
+
{{scopeModifiers}} {{name}} {{modifiers}}
|
3
|
+
{{/each}}
|
4
|
+
{{#each constructors as |item|}}
|
5
|
+
{{scopeModifiers}} {{name}}({{#each parameters}}{{type}} {{name}}{{/each}}) {{returnType}} {{modifiers}}
|
6
|
+
{{/each}}
|
7
|
+
{{#each methods as |item|}}
|
8
|
+
{{scopeModifiers}} {{name}}({{#each parameters}}{{type}} {{name}}{{/each}}) {{returnType}} {{modifiers}}
|
9
|
+
{{/each}}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
---
|
2
|
+
title: { { Name } }
|
3
|
+
---
|
4
|
+
|
5
|
+
## Introducción
|
6
|
+
|
7
|
+
<!-- START autogenerated-class -->
|
8
|
+
|
9
|
+
## Diagrama
|
10
|
+
|
11
|
+
{{import class-diagrama.md}}
|
12
|
+
|
13
|
+
### Metodos
|
14
|
+
|
15
|
+
{{import class-metodos.md}}
|
16
|
+
|
17
|
+
{{import class-referencias.md}}
|
18
|
+
|
19
|
+
<!-- END autogenerated-class -->
|
@@ -0,0 +1,15 @@
|
|
1
|
+
{{#if SymbolTable.constructors}}
|
2
|
+
_Constructores_
|
3
|
+
| # | Argumentos |
|
4
|
+
| --- | ---------- |
|
5
|
+
{{#each SymbolTable.constructors}}
|
6
|
+
| <div class="icons">{{modifiers}}</div> | <ul>{{#each parameters}}<li>{{#with type}}{{linkToType}}{{/with}} {{name}}</li>{{/each}}</ul>|
|
7
|
+
{{/each}}
|
8
|
+
{{/if}}
|
9
|
+
|
10
|
+
_Metodos_
|
11
|
+
| # | Nombre | Return | Argumentos |
|
12
|
+
| --- | ------ | ------ | ---------- |
|
13
|
+
{{#each SymbolTable.methods}}
|
14
|
+
| <div class="icons">{{modifiers}}</div> | {{name}} | {{#with returnType}}{{linkToType}}{{/with}}| <ul>{{#each parameters}}<li>{{#with type}}{{linkToType}}{{/with}} {{name}}</li>{{/each}}</ul>|
|
15
|
+
{{/each}}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{{#each properties}}
|
2
|
+
{{#if (filterByPublic this)}}
|
3
|
+
{{scopeModifiers}} {{name}} {{modifiers}}
|
4
|
+
{{/if}}
|
5
|
+
{{/each}}
|
6
|
+
{{#each constructors as |item|}}
|
7
|
+
{{scopeModifiers}} {{name}}({{#each parameters}}{{type}} {{name}}{{/each}}) {{returnType}} {{modifiers}}
|
8
|
+
{{/each}}
|
9
|
+
{{#each methods as |item|}}
|
10
|
+
{{#if (filterByPublic this)}}
|
11
|
+
{{scopeModifiers}} {{name}}({{#each parameters}}{{type}} {{name}}{{/each}}) {{returnType}} {{modifiers}}
|
12
|
+
{{/if}}
|
13
|
+
{{/each}}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
---
|
2
|
+
title: { { Name } }
|
3
|
+
---
|
4
|
+
|
5
|
+
## Introducción
|
6
|
+
|
7
|
+
<!-- START autogenerated-class -->
|
8
|
+
|
9
|
+
## Descripción
|
10
|
+
|
11
|
+
{{description}}
|
12
|
+
|
13
|
+
- Status: {{Status}}
|
14
|
+
- Api Version: {{ApiVersion}}
|
15
|
+
- Interface
|
16
|
+
{{#each SymbolTable.interfaces}} \* [{{this}}](/diccionarios/classes/{{this}})
|
17
|
+
{{/each}}
|
18
|
+
|
19
|
+
## Diagrama
|
20
|
+
|
21
|
+
{{import class-diagrama.md}}
|
22
|
+
|
23
|
+
### Metodos
|
24
|
+
|
25
|
+
{{import class-metodos.md}}
|
26
|
+
|
27
|
+
{{import class-referencias.md}}
|
28
|
+
|
29
|
+
<!-- END autogenerated-class -->
|
@@ -0,0 +1,52 @@
|
|
1
|
+
---
|
2
|
+
title: Modelo de Clases
|
3
|
+
---
|
4
|
+
|
5
|
+
## Introducción
|
6
|
+
|
7
|
+
## Classes
|
8
|
+
|
9
|
+
<!-- START autogenerated-classes -->
|
10
|
+
|
11
|
+
### Diagrama
|
12
|
+
|
13
|
+
```mermaid
|
14
|
+
classDiagram
|
15
|
+
{{#each classes as |class|}}
|
16
|
+
|
17
|
+
{{#each SymbolTable.interfaces}}
|
18
|
+
{{this}} <|-- {{class.Name}} : implements
|
19
|
+
{{/each}}
|
20
|
+
{{#if parentClass}}
|
21
|
+
{{parentClass}} <|-- {{Name}}
|
22
|
+
{{/if}}
|
23
|
+
|
24
|
+
class {{Name}} {
|
25
|
+
{{#with SymbolTable}}
|
26
|
+
{{import class-public}}
|
27
|
+
{{/with}}
|
28
|
+
}
|
29
|
+
|
30
|
+
link {{class.Name}} "{{classLinkGraph}}"
|
31
|
+
{{/each}}
|
32
|
+
{{#each namespaces as |namespace|}}
|
33
|
+
namespace _{{@key}} {
|
34
|
+
{{#each namespace}}
|
35
|
+
class {{this}}
|
36
|
+
{{/each}}
|
37
|
+
}
|
38
|
+
{{/each}}
|
39
|
+
```
|
40
|
+
|
41
|
+
### Listado
|
42
|
+
|
43
|
+
| # | Name | Api Version | Descripcion |
|
44
|
+
| --- | ---- | ----------- | ----------- |
|
45
|
+
|
46
|
+
{{#each classes}}
|
47
|
+
| <div class="icons">{{#with TableDeclaration}}{{modifiers}}{{/with}}</div> | [{{Name}}]({{classLink}}) |{{ApiVersion}}|{{description}}|
|
48
|
+
{{/each}}
|
49
|
+
|
50
|
+
{{import class-referencias.md}}
|
51
|
+
|
52
|
+
<!-- END autogenerated-classes -->
|
@@ -0,0 +1,35 @@
|
|
1
|
+
---
|
2
|
+
title: { { label } }
|
3
|
+
---
|
4
|
+
|
5
|
+
<!-- START autogenerated-object -->
|
6
|
+
|
7
|
+
## Descripción
|
8
|
+
|
9
|
+
{{description}}
|
10
|
+
|
11
|
+
- Label: {{label}}
|
12
|
+
- ApiName: {{fullName}}
|
13
|
+
- Sharing Mode: {{sharingModel}}
|
14
|
+
- Visibilidad: {{visibility}}
|
15
|
+
- [Ver en Salesforce](https://test.salesforce.com/lightning/setup/ObjectManager/lookupRedirect?lookup=entityByApiName&apiName={{fullName}})
|
16
|
+
|
17
|
+
## Campos
|
18
|
+
|
19
|
+
| # | Label | Api Name | Tipo | Descripcion |
|
20
|
+
| --- | ----- | -------- | ---- | ----------- |
|
21
|
+
|
22
|
+
{{#each fields}}
|
23
|
+
{{#unless (isManaged this)}}
|
24
|
+
| <div class="icons">{{attributesFormula}}</div> | {{label}} | {{fullName}} | {{typeFormula}} | {{descriptionFormula}} <ul>{{#each valueSet.valueSetDefinition.value}}<li>{{label}}</li>{{/each}}</ul> |
|
25
|
+
{{/unless}}
|
26
|
+
{{/each}}
|
27
|
+
|
28
|
+
| # | Referencia |
|
29
|
+
| -------------------------------------------------------------- | ------------- |
|
30
|
+
| <div class="icons"></div> | Requerido |
|
31
|
+
| <div class="icons"></div> | External Id |
|
32
|
+
| <div class="icons"></div> | Track History |
|
33
|
+
| <div class="icons"></div> | Encriptado |
|
34
|
+
|
35
|
+
<!-- END autogenerated-object -->
|
@@ -0,0 +1,63 @@
|
|
1
|
+
---
|
2
|
+
title: Modelo de datos
|
3
|
+
---
|
4
|
+
|
5
|
+
## Introducción
|
6
|
+
|
7
|
+
## Objetos
|
8
|
+
|
9
|
+
<!-- START autogenerated-objects -->
|
10
|
+
|
11
|
+
```mermaid
|
12
|
+
erDiagram
|
13
|
+
{{#each objects}}
|
14
|
+
{{#each fields}}
|
15
|
+
{{#unless (isManaged this)}}
|
16
|
+
{{#if referenceTo}}
|
17
|
+
{{referenceTo}} ||..|{ {{../fullName}} : "{{relationshipLabel}}"
|
18
|
+
{{/if}}
|
19
|
+
{{/unless}}
|
20
|
+
{{/each}}
|
21
|
+
{{/each}}
|
22
|
+
|
23
|
+
{{#each objects}}
|
24
|
+
{{fullName}} {
|
25
|
+
{{#each fields}}
|
26
|
+
{{#unless (isManaged this)}}
|
27
|
+
{{#if referenceTo}}
|
28
|
+
{{fullName}} {{referenceTo}}
|
29
|
+
{{/if}}
|
30
|
+
{{/unless}}
|
31
|
+
{{/each}}
|
32
|
+
}
|
33
|
+
{{/each}}
|
34
|
+
|
35
|
+
```
|
36
|
+
|
37
|
+
### Transaccionales
|
38
|
+
|
39
|
+
| # | Label | Api Name | Descripcion |
|
40
|
+
| --- | ----- | -------- | ----------- |
|
41
|
+
|
42
|
+
{{#each objects}}
|
43
|
+
{{#unless (isMetadataFormula this)}}
|
44
|
+
| <div class="icons">{{attributesFormula}}</div> | [{{label}}](/diccionarios/objects/{{fullName}}) | {{fullName}} |{{description}}|
|
45
|
+
{{/unless}}
|
46
|
+
{{/each}}
|
47
|
+
|
48
|
+
### Configuracion
|
49
|
+
|
50
|
+
| # | Label | Api Name | Descripcion |
|
51
|
+
| --- | ----- | -------- | ----------- |
|
52
|
+
|
53
|
+
{{#each objects}}
|
54
|
+
{{#if (isMetadataFormula this)}}
|
55
|
+
| <div class="icons">{{attributesFormula}}</div> | [{{label}}](/diccionarios/objects/{{fullName}}) | {{fullName}} |{{description}}|
|
56
|
+
{{/if}}
|
57
|
+
{{/each}}
|
58
|
+
|
59
|
+
| # | Referencia |
|
60
|
+
| -------------------------------------------------------------- | ------------- |
|
61
|
+
| <div class="icons"></div> | Track History |
|
62
|
+
|
63
|
+
<!-- END autogenerated-objects -->
|
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
title: { { title } }
|
3
|
+
slug: { { name } }
|
4
|
+
---
|
5
|
+
|
6
|
+
## Descripcion
|
7
|
+
|
8
|
+
{{descripcion}}
|
9
|
+
|
10
|
+
## Componentes
|
11
|
+
|
12
|
+
## Objetos
|
13
|
+
|
14
|
+
<!-- START autogenerated-objects -->
|
15
|
+
<!-- END autogenerated-objects -->
|
16
|
+
|
17
|
+
## Clases
|
18
|
+
|
19
|
+
<!-- START autogenerated-classes -->
|
20
|
+
<!-- END autogenerated-classes -->
|
@@ -0,0 +1,23 @@
|
|
1
|
+
---
|
2
|
+
title: {{name}}
|
3
|
+
process: {{identifier}}
|
4
|
+
{{#if rol}}
|
5
|
+
tags: [{{rol}}]
|
6
|
+
{{/if}}
|
7
|
+
---
|
8
|
+
|
9
|
+
## Descripcion
|
10
|
+
|
11
|
+
{{descripcion}}
|
12
|
+
|
13
|
+
## Componentes
|
14
|
+
|
15
|
+
## Objetos
|
16
|
+
|
17
|
+
<!-- START autogenerated-objects -->
|
18
|
+
<!-- END autogenerated-objects -->
|
19
|
+
|
20
|
+
## Clases
|
21
|
+
|
22
|
+
<!-- START autogenerated-classes -->
|
23
|
+
<!-- END autogenerated-classes -->
|
@@ -0,0 +1,32 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 1
|
3
|
+
tags: [{ { rol } }]
|
4
|
+
---
|
5
|
+
|
6
|
+
# {{titulo}}
|
7
|
+
|
8
|
+
- Modulo: [{{modulo}}](/{{modulo}})
|
9
|
+
- Roles: [{{rol}}](/tags/{{rol}})
|
10
|
+
|
11
|
+
## Descripcion:
|
12
|
+
|
13
|
+
## Escenarios
|
14
|
+
|
15
|
+
1.
|
16
|
+
|
17
|
+
<!-- START autogenerated-objects -->
|
18
|
+
<!-- END autogenerated-objects -->
|
19
|
+
|
20
|
+
<!-- START autogenerated-classes -->
|
21
|
+
<!-- END autogenerated-classes -->
|
22
|
+
|
23
|
+
<!-- START autogenerated-usecase -->
|
24
|
+
|
25
|
+
:::tip
|
26
|
+
Para refrescar metadata:
|
27
|
+
|
28
|
+
```bash
|
29
|
+
{{command}}
|
30
|
+
```
|
31
|
+
|
32
|
+
<!-- END autogenerated-usecase -->
|
@@ -0,0 +1,52 @@
|
|
1
|
+
---
|
2
|
+
sidebar_position: 1
|
3
|
+
tags: [{ { actor } }]
|
4
|
+
---
|
5
|
+
|
6
|
+
# {{titulo}}
|
7
|
+
|
8
|
+
- Modulo: [{{modulo}}](/{{modulo}})
|
9
|
+
- Roles: [{{actor}}](/tags/{{actor}})
|
10
|
+
- Alcance:
|
11
|
+
- Proposito:
|
12
|
+
|
13
|
+
## Descripcion:
|
14
|
+
|
15
|
+
- Suposiciones:
|
16
|
+
- Cuando:
|
17
|
+
- Precondiciones:
|
18
|
+
- Postcondiciones:
|
19
|
+
|
20
|
+
## Flujo Principal
|
21
|
+
|
22
|
+
_Pasos: _
|
23
|
+
|
24
|
+
1.
|
25
|
+
|
26
|
+
## Flujos Alternativos
|
27
|
+
|
28
|
+
_Pasos: _
|
29
|
+
|
30
|
+
1.
|
31
|
+
|
32
|
+
## Use cases relacionados
|
33
|
+
|
34
|
+
| Nombre | Descripcion |
|
35
|
+
| ------ | ----------- |
|
36
|
+
|
37
|
+
<!-- START autogenerated-objects -->
|
38
|
+
<!-- END autogenerated-objects -->
|
39
|
+
|
40
|
+
<!-- START autogenerated-classes -->
|
41
|
+
<!-- END autogenerated-classes -->
|
42
|
+
|
43
|
+
<!-- START autogenerated-usecase -->
|
44
|
+
|
45
|
+
:::tip
|
46
|
+
Para refrescar metadata:
|
47
|
+
|
48
|
+
```bash
|
49
|
+
{{command}}
|
50
|
+
```
|
51
|
+
|
52
|
+
<!-- END autogenerated-usecase -->
|