arc-1 0.9.27 → 1.0.0
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 +28 -11
- package/dist/adt/abapgit.d.ts +19 -6
- package/dist/adt/abapgit.d.ts.map +1 -1
- package/dist/adt/abapgit.js +141 -36
- package/dist/adt/abapgit.js.map +1 -1
- package/dist/adt/client.d.ts +21 -8
- package/dist/adt/client.d.ts.map +1 -1
- package/dist/adt/client.js +47 -7
- package/dist/adt/client.js.map +1 -1
- package/dist/adt/config.d.ts +15 -0
- package/dist/adt/config.d.ts.map +1 -1
- package/dist/adt/config.js.map +1 -1
- package/dist/adt/crud.d.ts +7 -2
- package/dist/adt/crud.d.ts.map +1 -1
- package/dist/adt/crud.js +12 -4
- package/dist/adt/crud.js.map +1 -1
- package/dist/adt/ddic-xml.d.ts +27 -17
- package/dist/adt/ddic-xml.d.ts.map +1 -1
- package/dist/adt/ddic-xml.js +45 -34
- package/dist/adt/ddic-xml.js.map +1 -1
- package/dist/adt/devtools.d.ts +13 -0
- package/dist/adt/devtools.d.ts.map +1 -1
- package/dist/adt/devtools.js +120 -50
- package/dist/adt/devtools.js.map +1 -1
- package/dist/adt/errors.d.ts +1 -1
- package/dist/adt/errors.d.ts.map +1 -1
- package/dist/adt/errors.js +18 -0
- package/dist/adt/errors.js.map +1 -1
- package/dist/adt/http.d.ts +17 -1
- package/dist/adt/http.d.ts.map +1 -1
- package/dist/adt/http.js +102 -19
- package/dist/adt/http.js.map +1 -1
- package/dist/adt/server-driven.d.ts +154 -34
- package/dist/adt/server-driven.d.ts.map +1 -1
- package/dist/adt/server-driven.js +178 -53
- package/dist/adt/server-driven.js.map +1 -1
- package/dist/adt/transport.d.ts +6 -6
- package/dist/adt/transport.d.ts.map +1 -1
- package/dist/adt/transport.js +23 -34
- package/dist/adt/transport.js.map +1 -1
- package/dist/adt/types.d.ts +47 -6
- package/dist/adt/types.d.ts.map +1 -1
- package/dist/adt/xml-parser.d.ts +52 -12
- package/dist/adt/xml-parser.d.ts.map +1 -1
- package/dist/adt/xml-parser.js +120 -10
- package/dist/adt/xml-parser.js.map +1 -1
- package/dist/authz/policy.d.ts +8 -0
- package/dist/authz/policy.d.ts.map +1 -1
- package/dist/authz/policy.js +23 -0
- package/dist/authz/policy.js.map +1 -1
- package/dist/cache/cache.d.ts +2 -34
- package/dist/cache/cache.d.ts.map +1 -1
- package/dist/cache/cache.js +2 -3
- package/dist/cache/cache.js.map +1 -1
- package/dist/cache/caching-layer.d.ts +3 -19
- package/dist/cache/caching-layer.d.ts.map +1 -1
- package/dist/cache/caching-layer.js +2 -26
- package/dist/cache/caching-layer.js.map +1 -1
- package/dist/cache/memory.d.ts +1 -12
- package/dist/cache/memory.d.ts.map +1 -1
- package/dist/cache/memory.js +0 -69
- package/dist/cache/memory.js.map +1 -1
- package/dist/cache/sqlite.d.ts +2 -9
- package/dist/cache/sqlite.d.ts.map +1 -1
- package/dist/cache/sqlite.js +8 -84
- package/dist/cache/sqlite.js.map +1 -1
- package/dist/cli.js +6 -3
- package/dist/cli.js.map +1 -1
- package/dist/context/unit-surgery.d.ts +28 -0
- package/dist/context/unit-surgery.d.ts.map +1 -0
- package/dist/context/unit-surgery.js +150 -0
- package/dist/context/unit-surgery.js.map +1 -0
- package/dist/handlers/activate.d.ts.map +1 -1
- package/dist/handlers/activate.js +44 -6
- package/dist/handlers/activate.js.map +1 -1
- package/dist/handlers/context.d.ts +1 -1
- package/dist/handlers/context.d.ts.map +1 -1
- package/dist/handlers/context.js +98 -28
- package/dist/handlers/context.js.map +1 -1
- package/dist/handlers/diagnose.d.ts.map +1 -1
- package/dist/handlers/diagnose.js +55 -31
- package/dist/handlers/diagnose.js.map +1 -1
- package/dist/handlers/dispatch.d.ts +12 -1
- package/dist/handlers/dispatch.d.ts.map +1 -1
- package/dist/handlers/dispatch.js +160 -25
- package/dist/handlers/dispatch.js.map +1 -1
- package/dist/handlers/feature-cache.d.ts +27 -14
- package/dist/handlers/feature-cache.d.ts.map +1 -1
- package/dist/handlers/feature-cache.js +63 -25
- package/dist/handlers/feature-cache.js.map +1 -1
- package/dist/handlers/function-processing.d.ts +61 -0
- package/dist/handlers/function-processing.d.ts.map +1 -0
- package/dist/handlers/function-processing.js +45 -0
- package/dist/handlers/function-processing.js.map +1 -0
- package/dist/handlers/git.d.ts.map +1 -1
- package/dist/handlers/git.js +44 -19
- package/dist/handlers/git.js.map +1 -1
- package/dist/handlers/hyperfocused.d.ts.map +1 -1
- package/dist/handlers/hyperfocused.js +2 -3
- package/dist/handlers/hyperfocused.js.map +1 -1
- package/dist/handlers/lint.d.ts.map +1 -1
- package/dist/handlers/lint.js +7 -7
- package/dist/handlers/lint.js.map +1 -1
- package/dist/handlers/manage.d.ts.map +1 -1
- package/dist/handlers/manage.js +42 -25
- package/dist/handlers/manage.js.map +1 -1
- package/dist/handlers/navigate.d.ts.map +1 -1
- package/dist/handlers/navigate.js +27 -90
- package/dist/handlers/navigate.js.map +1 -1
- package/dist/handlers/object-types.d.ts +2 -0
- package/dist/handlers/object-types.d.ts.map +1 -1
- package/dist/handlers/object-types.js +10 -0
- package/dist/handlers/object-types.js.map +1 -1
- package/dist/handlers/query.d.ts.map +1 -1
- package/dist/handlers/query.js +2 -2
- package/dist/handlers/query.js.map +1 -1
- package/dist/handlers/read.d.ts.map +1 -1
- package/dist/handlers/read.js +64 -41
- package/dist/handlers/read.js.map +1 -1
- package/dist/handlers/schemas.d.ts +64 -16
- package/dist/handlers/schemas.d.ts.map +1 -1
- package/dist/handlers/schemas.js +123 -32
- package/dist/handlers/schemas.js.map +1 -1
- package/dist/handlers/search.d.ts.map +1 -1
- package/dist/handlers/search.js +8 -7
- package/dist/handlers/search.js.map +1 -1
- package/dist/handlers/shared.d.ts +13 -0
- package/dist/handlers/shared.d.ts.map +1 -1
- package/dist/handlers/shared.js +15 -0
- package/dist/handlers/shared.js.map +1 -1
- package/dist/handlers/tool-descriptions.d.ts +4 -0
- package/dist/handlers/tool-descriptions.d.ts.map +1 -0
- package/dist/handlers/tool-descriptions.js +52 -0
- package/dist/handlers/tool-descriptions.js.map +1 -0
- package/dist/handlers/tool-registry.d.ts +18 -4
- package/dist/handlers/tool-registry.d.ts.map +1 -1
- package/dist/handlers/tool-registry.js +18 -0
- package/dist/handlers/tool-registry.js.map +1 -1
- package/dist/handlers/tools.d.ts.map +1 -1
- package/dist/handlers/tools.js +113 -90
- package/dist/handlers/tools.js.map +1 -1
- package/dist/handlers/transport.d.ts +1 -1
- package/dist/handlers/transport.d.ts.map +1 -1
- package/dist/handlers/transport.js +37 -10
- package/dist/handlers/transport.js.map +1 -1
- package/dist/handlers/where-used.d.ts +25 -0
- package/dist/handlers/where-used.d.ts.map +1 -0
- package/dist/handlers/where-used.js +94 -0
- package/dist/handlers/where-used.js.map +1 -0
- package/dist/handlers/write/class-surgery.d.ts.map +1 -1
- package/dist/handlers/write/class-surgery.js +11 -12
- package/dist/handlers/write/class-surgery.js.map +1 -1
- package/dist/handlers/write/create.d.ts.map +1 -1
- package/dist/handlers/write/create.js +194 -84
- package/dist/handlers/write/create.js.map +1 -1
- package/dist/handlers/write/rap.d.ts.map +1 -1
- package/dist/handlers/write/rap.js +9 -9
- package/dist/handlers/write/rap.js.map +1 -1
- package/dist/handlers/write/unit-surgery.d.ts +5 -0
- package/dist/handlers/write/unit-surgery.d.ts.map +1 -0
- package/dist/handlers/write/unit-surgery.js +47 -0
- package/dist/handlers/write/unit-surgery.js.map +1 -0
- package/dist/handlers/write/update-delete.js +8 -8
- package/dist/handlers/write/update-delete.js.map +1 -1
- package/dist/handlers/write-helpers.d.ts +7 -4
- package/dist/handlers/write-helpers.d.ts.map +1 -1
- package/dist/handlers/write-helpers.js +118 -63
- package/dist/handlers/write-helpers.js.map +1 -1
- package/dist/handlers/write.d.ts.map +1 -1
- package/dist/handlers/write.js +35 -13
- package/dist/handlers/write.js.map +1 -1
- package/dist/lint/lint.d.ts.map +1 -1
- package/dist/lint/lint.js +4 -2
- package/dist/lint/lint.js.map +1 -1
- package/dist/probe/catalog.js +1 -1
- package/dist/probe/catalog.js.map +1 -1
- package/dist/public/ui/app.js +1 -14
- package/dist/server/audit.d.ts +27 -15
- package/dist/server/audit.d.ts.map +1 -1
- package/dist/server/audit.js.map +1 -1
- package/dist/server/auth-rate-limit.d.ts +18 -9
- package/dist/server/auth-rate-limit.d.ts.map +1 -1
- package/dist/server/auth-rate-limit.js +31 -6
- package/dist/server/auth-rate-limit.js.map +1 -1
- package/dist/server/auth-summary.d.ts +4 -0
- package/dist/server/auth-summary.d.ts.map +1 -0
- package/dist/server/auth-summary.js +67 -0
- package/dist/server/auth-summary.js.map +1 -0
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +106 -3
- package/dist/server/config.js.map +1 -1
- package/dist/server/context.d.ts +12 -0
- package/dist/server/context.d.ts.map +1 -1
- package/dist/server/context.js.map +1 -1
- package/dist/server/destination-discovery.d.ts +36 -0
- package/dist/server/destination-discovery.d.ts.map +1 -0
- package/dist/server/destination-discovery.js +130 -0
- package/dist/server/destination-discovery.js.map +1 -0
- package/dist/server/destination-registry.d.ts +111 -0
- package/dist/server/destination-registry.d.ts.map +1 -0
- package/dist/server/destination-registry.js +449 -0
- package/dist/server/destination-registry.js.map +1 -0
- package/dist/server/http.d.ts +43 -1
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +283 -73
- package/dist/server/http.js.map +1 -1
- package/dist/server/logger.d.ts.map +1 -1
- package/dist/server/logger.js +58 -13
- package/dist/server/logger.js.map +1 -1
- package/dist/server/mcp-rate-limit.d.ts +6 -4
- package/dist/server/mcp-rate-limit.d.ts.map +1 -1
- package/dist/server/mcp-rate-limit.js +6 -4
- package/dist/server/mcp-rate-limit.js.map +1 -1
- package/dist/server/multi-target-basic-auth.d.ts +49 -0
- package/dist/server/multi-target-basic-auth.d.ts.map +1 -0
- package/dist/server/multi-target-basic-auth.js +246 -0
- package/dist/server/multi-target-basic-auth.js.map +1 -0
- package/dist/server/multi-target-catalog.d.ts +33 -0
- package/dist/server/multi-target-catalog.d.ts.map +1 -0
- package/dist/server/multi-target-catalog.js +130 -0
- package/dist/server/multi-target-catalog.js.map +1 -0
- package/dist/server/multi-target-destination-config.d.ts +12 -0
- package/dist/server/multi-target-destination-config.d.ts.map +1 -0
- package/dist/server/multi-target-destination-config.js +37 -0
- package/dist/server/multi-target-destination-config.js.map +1 -0
- package/dist/server/multi-target-destination-runtime.d.ts +20 -0
- package/dist/server/multi-target-destination-runtime.d.ts.map +1 -0
- package/dist/server/multi-target-destination-runtime.js +191 -0
- package/dist/server/multi-target-destination-runtime.js.map +1 -0
- package/dist/server/multi-target-feature-state.d.ts +6 -0
- package/dist/server/multi-target-feature-state.d.ts.map +1 -0
- package/dist/server/multi-target-feature-state.js +41 -0
- package/dist/server/multi-target-feature-state.js.map +1 -0
- package/dist/server/multi-target-identity.d.ts +10 -0
- package/dist/server/multi-target-identity.d.ts.map +1 -0
- package/dist/server/multi-target-identity.js +18 -0
- package/dist/server/multi-target-identity.js.map +1 -0
- package/dist/server/multi-target-runtime.d.ts +27 -0
- package/dist/server/multi-target-runtime.d.ts.map +1 -0
- package/dist/server/multi-target-runtime.js +110 -0
- package/dist/server/multi-target-runtime.js.map +1 -0
- package/dist/server/multi-target-server.d.ts +53 -0
- package/dist/server/multi-target-server.d.ts.map +1 -0
- package/dist/server/multi-target-server.js +434 -0
- package/dist/server/multi-target-server.js.map +1 -0
- package/dist/server/multi-target-shared-auth-state.d.ts +82 -0
- package/dist/server/multi-target-shared-auth-state.d.ts.map +1 -0
- package/dist/server/multi-target-shared-auth-state.js +226 -0
- package/dist/server/multi-target-shared-auth-state.js.map +1 -0
- package/dist/server/multi-target-tools.d.ts +20 -0
- package/dist/server/multi-target-tools.d.ts.map +1 -0
- package/dist/server/multi-target-tools.js +191 -0
- package/dist/server/multi-target-tools.js.map +1 -0
- package/dist/server/oauth-session-recovery.d.ts +22 -0
- package/dist/server/oauth-session-recovery.d.ts.map +1 -0
- package/dist/server/oauth-session-recovery.js +69 -0
- package/dist/server/oauth-session-recovery.js.map +1 -0
- package/dist/server/server.d.ts +39 -27
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/server.js +433 -300
- package/dist/server/server.js.map +1 -1
- package/dist/server/sinks/btp-auditlog.d.ts.map +1 -1
- package/dist/server/sinks/btp-auditlog.js +83 -11
- package/dist/server/sinks/btp-auditlog.js.map +1 -1
- package/dist/server/tool-auth.d.ts +10 -0
- package/dist/server/tool-auth.d.ts.map +1 -0
- package/dist/server/tool-auth.js +75 -0
- package/dist/server/tool-auth.js.map +1 -0
- package/dist/server/trace-context.d.ts +51 -0
- package/dist/server/trace-context.d.ts.map +1 -0
- package/dist/server/trace-context.js +100 -0
- package/dist/server/trace-context.js.map +1 -0
- package/dist/server/types.d.ts +27 -6
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js +5 -2
- package/dist/server/types.js.map +1 -1
- package/dist/server/ui-state.d.ts +0 -2
- package/dist/server/ui-state.d.ts.map +1 -1
- package/dist/server/ui-state.js +0 -4
- package/dist/server/ui-state.js.map +1 -1
- package/dist/server/ui.d.ts.map +1 -1
- package/dist/server/ui.js +0 -7
- package/dist/server/ui.js.map +1 -1
- package/package.json +16 -13
- package/dist/cache/warmup.d.ts +0 -41
- package/dist/cache/warmup.d.ts.map +0 -1
- package/dist/cache/warmup.js +0 -337
- package/dist/cache/warmup.js.map +0 -1
- package/dist/server/elicit.d.ts +0 -43
- package/dist/server/elicit.d.ts.map +0 -1
- package/dist/server/elicit.js +0 -183
- package/dist/server/elicit.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"class-surgery.js","sourceRoot":"","sources":["../../../src/handlers/write/class-surgery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"class-surgery.js","sourceRoot":"","sources":["../../../src/handlers/write/class-surgery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/handlers/write/create.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/handlers/write/create.ts"],"names":[],"mappings":"AAAA;;GAEG;AA2CH,OAAO,EAAe,KAAK,UAAU,EAAc,MAAM,cAAc,CAAC;AAmBxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AA2XpD,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAkWjF;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAwftF"}
|
|
@@ -7,17 +7,19 @@ import { activate, activateBatch } from '../../adt/devtools.js';
|
|
|
7
7
|
import { AdtApiError } from '../../adt/errors.js';
|
|
8
8
|
import { spliceFmSignature } from '../../adt/fm-signature.js';
|
|
9
9
|
import { checkPackage } from '../../adt/safety.js';
|
|
10
|
+
import { isServerDrivenObjectType } from '../../adt/server-driven.js';
|
|
10
11
|
import { getTransport, getTransportInfo } from '../../adt/transport.js';
|
|
11
|
-
import { escapeXmlAttr } from '../../adt/xml-parser.js';
|
|
12
|
+
import { escapeXmlAttr, parseFunctionModuleProperties } from '../../adt/xml-parser.js';
|
|
12
13
|
import { validateAffHeader } from '../../aff/validator.js';
|
|
13
14
|
import { logger } from '../../server/logger.js';
|
|
14
15
|
import { buildBatchActivationStatuses, formatBatchActivationStatuses, } from '../activate.js';
|
|
15
16
|
import { invalidateInactiveList } from '../cache-security.js';
|
|
16
17
|
import { guardCdsSyntax } from '../cds-hints.js';
|
|
17
|
-
import {
|
|
18
|
-
import { normalizeObjectType, normalizeWriteObjectType, objectBasePath, objectUrlForType, sourceUrlForType, } from '../object-types.js';
|
|
18
|
+
import { getCachedFeatures, isDomainsEndpointAvailable, isTablesEndpointAvailable, isTableTypesEndpointAvailable, } from '../feature-cache.js';
|
|
19
|
+
import { functionGroupObjectUrl, functionModuleObjectUrl, normalizeObjectType, normalizeWriteObjectType, objectBasePath, objectUrlForType, sourceUrlForType, } from '../object-types.js';
|
|
19
20
|
import { errorResult, textResult } from '../shared.js';
|
|
20
|
-
import { buildCreateXml, createContentTypeForType, dtelNeedsPostCreateUpdate, getMetadataWriteProperties, isMetadataWriteType, mergePreWriteWarnings, resolveWriteSystemType, runPreWriteLint, runRapPreflightValidation, SKTD_V2_CONTENT_TYPE, stripFmParamCommentBlock, TABL_DT_WRITE_UNAVAILABLE_HINT, TTYP_WRITE_UNAVAILABLE_HINT, tryPostSaveSyntaxCheck, vendorContentTypeForType, } from '../write-helpers.js';
|
|
21
|
+
import { buildCreateXml, createContentTypeForType, DOMA_WRITE_UNAVAILABLE_HINT, dtelNeedsPostCreateUpdate, getMetadataWriteProperties, isMetadataWriteType, mergePreWriteWarnings, resolveWriteSystemType, runPreWriteLint, runRapPreflightValidation, SKTD_V2_CONTENT_TYPE, stripFmParamCommentBlock, TABL_DT_WRITE_UNAVAILABLE_HINT, TTYP_WRITE_UNAVAILABLE_HINT, tryPostSaveSyntaxCheck, vendorContentTypeForType, } from '../write-helpers.js';
|
|
22
|
+
const FUNCTION_MODULE_MEDIA_TYPE = /^application\/vnd\.sap\.adt\.functions\.fmodules(?:\.v\d+)?\+xml\b/i;
|
|
21
23
|
function normalizePackageOverride(rawPackage, fallback) {
|
|
22
24
|
if (rawPackage === undefined || rawPackage === null) {
|
|
23
25
|
return fallback;
|
|
@@ -32,6 +34,95 @@ function normalizeTransportOverride(rawTransport) {
|
|
|
32
34
|
const value = String(rawTransport).trim();
|
|
33
35
|
return value || undefined;
|
|
34
36
|
}
|
|
37
|
+
function prepareFunctionModuleCreateSource(name, source, parameters) {
|
|
38
|
+
const shouldWrite = !!source || (parameters !== undefined && parameters.length > 0);
|
|
39
|
+
if (!shouldWrite)
|
|
40
|
+
return { shouldWrite: false, source: '', warnings: [] };
|
|
41
|
+
let prepared = source ?? '';
|
|
42
|
+
const warnings = [];
|
|
43
|
+
if (parameters !== undefined) {
|
|
44
|
+
const baseSource = !prepared || prepared.trim() === ''
|
|
45
|
+
? `FUNCTION ${name}.\nENDFUNCTION.\n`
|
|
46
|
+
: /^\s*FUNCTION\s+/i.test(prepared)
|
|
47
|
+
? prepared
|
|
48
|
+
: `FUNCTION ${name}.\n${prepared}\nENDFUNCTION.\n`;
|
|
49
|
+
try {
|
|
50
|
+
prepared = spliceFmSignature(baseSource, name, parameters);
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
prepared = baseSource;
|
|
54
|
+
warnings.push('Could not splice structured parameters: source did not start with FUNCTION keyword. Used the supplied source verbatim.');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const stripped = stripFmParamCommentBlock(prepared);
|
|
58
|
+
if (stripped.wasStripped) {
|
|
59
|
+
warnings.push('Stripped *"…IMPORTING/EXPORTING…*" parameter comment blocks (pass `parameters` as a structured array instead).');
|
|
60
|
+
}
|
|
61
|
+
return { shouldWrite: true, source: stripped.source, warnings };
|
|
62
|
+
}
|
|
63
|
+
function getHeader(headers, name) {
|
|
64
|
+
return Object.entries(headers).find(([key]) => key.toLowerCase() === name.toLowerCase())?.[1];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Change only the processing attributes on the server-provided FUNC metadata
|
|
68
|
+
* envelope. SAP creates a normal function-module shell first; processing type
|
|
69
|
+
* is persisted by a subsequent locked metadata PUT (the same lifecycle used by
|
|
70
|
+
* the ADT Properties → Specific view).
|
|
71
|
+
*/
|
|
72
|
+
function rewriteFunctionModuleProcessingMetadata(xml, processingType, updateTaskKind) {
|
|
73
|
+
const rootMatch = /<fmodule:abapFunctionModule\b[^>]*>/i.exec(xml);
|
|
74
|
+
if (!rootMatch || rootMatch.index === undefined) {
|
|
75
|
+
throw new Error('FUNC processing metadata update failed: SAP did not return an abapFunctionModule envelope.');
|
|
76
|
+
}
|
|
77
|
+
const withoutProcessingAttributes = rootMatch[0]
|
|
78
|
+
.replace(/\s+fmodule:processingType\s*=\s*(?:"[^"]*"|'[^']*')/gi, '')
|
|
79
|
+
.replace(/\s+fmodule:updateTaskKind\s*=\s*(?:"[^"]*"|'[^']*')/gi, '');
|
|
80
|
+
const attributes = ` fmodule:processingType="${escapeXmlAttr(processingType)}"${updateTaskKind === undefined ? '' : ` fmodule:updateTaskKind="${escapeXmlAttr(updateTaskKind)}"`}`;
|
|
81
|
+
const rewrittenRoot = withoutProcessingAttributes.replace(/<fmodule:abapFunctionModule/i, (root) => `${root}${attributes}`);
|
|
82
|
+
return `${xml.slice(0, rootMatch.index)}${rewrittenRoot}${xml.slice(rootMatch.index + rootMatch[0].length)}`;
|
|
83
|
+
}
|
|
84
|
+
async function persistFunctionModuleProcessingMetadata(client, objectUrl, name, processingType, updateTaskKind, transport) {
|
|
85
|
+
try {
|
|
86
|
+
const inactiveUrl = `${objectUrl}?version=inactive`;
|
|
87
|
+
const current = await client.getObjectMetadata(inactiveUrl);
|
|
88
|
+
const body = rewriteFunctionModuleProcessingMetadata(current.body, processingType, updateTaskKind);
|
|
89
|
+
// Send the bare media type: SAP returns "…fmodules.v3+xml; charset=utf-8"
|
|
90
|
+
// (v2 on 750), and on-prem backends are known to reject vendor media types
|
|
91
|
+
// carrying parameters — same reason `resolveObjectPackage` strips them.
|
|
92
|
+
const responseContentType = getHeader(current.headers, 'content-type');
|
|
93
|
+
const discoveredContentType = client.http.discoveryAcceptFor(objectUrl);
|
|
94
|
+
const contentType = [responseContentType, discoveredContentType]
|
|
95
|
+
.find((candidate) => candidate !== undefined && FUNCTION_MODULE_MEDIA_TYPE.test(candidate))
|
|
96
|
+
?.split(';')[0]
|
|
97
|
+
?.trim() ?? vendorContentTypeForType('FUNC');
|
|
98
|
+
await safeUpdateObject(client.http, client.safety, objectUrl, body, contentType, transport, getCachedFeatures()?.abapRelease);
|
|
99
|
+
// A 2xx response alone is insufficient evidence: the collection POST accepts
|
|
100
|
+
// these attributes and still retains `normal` (live-verified on 758).
|
|
101
|
+
const persisted = await client.getObjectMetadata(inactiveUrl);
|
|
102
|
+
const { processingType: actualProcessingType, updateTaskKind: actualUpdateTaskKind } = parseFunctionModuleProperties(persisted.body);
|
|
103
|
+
if (actualProcessingType !== processingType ||
|
|
104
|
+
(updateTaskKind === undefined ? actualUpdateTaskKind !== undefined : actualUpdateTaskKind !== updateTaskKind)) {
|
|
105
|
+
throw new Error(`SAP retained processingType="${actualProcessingType ?? 'unknown'}"${actualUpdateTaskKind === undefined ? '' : ` and updateTaskKind="${actualUpdateTaskKind}"`}.`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (cause) {
|
|
109
|
+
const detail = cause instanceof Error ? cause.message : String(cause);
|
|
110
|
+
throw new Error(`FUNC post-create processing update failed for ${name} after SAP accepted the create POST. ` +
|
|
111
|
+
`The object may remain as a normal function-module shell. Review it with SAPRead or delete it before retrying. ` +
|
|
112
|
+
detail);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
async function resolveFunctionGroupCreatePackage(client, group, requestedPackage, childType = 'FUNC') {
|
|
116
|
+
const actualPackage = await client.resolveObjectPackage(functionGroupObjectUrl(group));
|
|
117
|
+
if (!actualPackage) {
|
|
118
|
+
throw new Error(`${childType} create blocked: ARC-1 could not determine the parent function group "${group}" package from ADT metadata.`);
|
|
119
|
+
}
|
|
120
|
+
const explicitPackage = requestedPackage === undefined || requestedPackage === null ? undefined : String(requestedPackage).trim();
|
|
121
|
+
if (explicitPackage && explicitPackage.toUpperCase() !== actualPackage.toUpperCase()) {
|
|
122
|
+
throw new Error(`${childType} inherits package "${actualPackage}" from parent function group "${group}"; requested package "${explicitPackage}" does not match.`);
|
|
123
|
+
}
|
|
124
|
+
return actualPackage;
|
|
125
|
+
}
|
|
35
126
|
function ttypPostCreateFailureMessage(name, cause) {
|
|
36
127
|
const detail = cause instanceof Error ? cause.message : String(cause);
|
|
37
128
|
return (`TTYP post-create update failed for ${name} after SAP accepted the create POST. ` +
|
|
@@ -43,7 +134,7 @@ function ttypPostCreateFailureMessage(name, cause) {
|
|
|
43
134
|
async function putTtypMetadataAfterCreate(client, objectUrl, name, body, contentType, transport) {
|
|
44
135
|
try {
|
|
45
136
|
await client.http.withStatefulSession(async (session) => {
|
|
46
|
-
const lock = await lockObject(session, client.safety, objectUrl, 'MODIFY',
|
|
137
|
+
const lock = await lockObject(session, client.safety, objectUrl, 'MODIFY', getCachedFeatures()?.abapRelease);
|
|
47
138
|
const lockTransport = transport ?? (lock.corrNr || undefined);
|
|
48
139
|
try {
|
|
49
140
|
await updateObject(session, client.safety, objectUrl, body, lock.lockHandle, contentType, lockTransport);
|
|
@@ -210,7 +301,14 @@ function isKtdCreateEndpointUnavailable(err) {
|
|
|
210
301
|
}
|
|
211
302
|
export async function writeActionCreate(ctx) {
|
|
212
303
|
const { client, args, config, type, name, source, transport, lintOverride, preflightOverride, objectUrl, srcUrl, invalidateWrittenObject, } = ctx;
|
|
213
|
-
|
|
304
|
+
// FUNC and FUGR structural includes both INHERIT the parent group's package — SAP ignores
|
|
305
|
+
// _package for them — so the allowlist must be checked against the group's real package.
|
|
306
|
+
// Gating on args.package here would let a caller write into a disallowed package by claiming $TMP.
|
|
307
|
+
const groupArg = String(args.group ?? '').trim();
|
|
308
|
+
const inheritsGroupPackage = type === 'FUNC' || (type === 'INCL' && groupArg !== '');
|
|
309
|
+
const pkg = inheritsGroupPackage
|
|
310
|
+
? await resolveFunctionGroupCreatePackage(client, groupArg, args.package, type === 'INCL' ? 'INCL' : 'FUNC')
|
|
311
|
+
: String(args.package ?? '$TMP');
|
|
214
312
|
await checkPackage(client.safety, pkg, client.getPackageHierarchyResolver());
|
|
215
313
|
const description = String(args.description ?? name);
|
|
216
314
|
// Pre-flight: check transport requirements for non-$TMP packages when no transport provided.
|
|
@@ -262,11 +360,11 @@ export async function writeActionCreate(ctx) {
|
|
|
262
360
|
}
|
|
263
361
|
}
|
|
264
362
|
// CDS pre-write validation: reject unsupported syntax early
|
|
265
|
-
const cdsGuard = guardCdsSyntax(type, source,
|
|
363
|
+
const cdsGuard = guardCdsSyntax(type, source, getCachedFeatures());
|
|
266
364
|
if (cdsGuard)
|
|
267
365
|
return cdsGuard;
|
|
268
366
|
// RAP deterministic preflight validation (before object creation to avoid stubs)
|
|
269
|
-
const preflightWarnings = runRapPreflightValidation(source, type, name,
|
|
367
|
+
const preflightWarnings = runRapPreflightValidation(source, type, name, getCachedFeatures(), config.systemType, preflightOverride);
|
|
270
368
|
if (preflightWarnings.blocked)
|
|
271
369
|
return preflightWarnings.result;
|
|
272
370
|
// AFF header validation (if schema available for this type)
|
|
@@ -304,7 +402,7 @@ export async function writeActionCreate(ctx) {
|
|
|
304
402
|
const ktdCreateUrl = '/sap/bc/adt/documentation/ktd/documents';
|
|
305
403
|
let ktdResult;
|
|
306
404
|
try {
|
|
307
|
-
ktdResult = await createObject(client.http, client.safety, ktdCreateUrl, ktdBody, SKTD_V2_CONTENT_TYPE, effectiveTransport, undefined,
|
|
405
|
+
ktdResult = await createObject(client.http, client.safety, ktdCreateUrl, ktdBody, SKTD_V2_CONTENT_TYPE, effectiveTransport, undefined, getCachedFeatures()?.abapRelease);
|
|
308
406
|
}
|
|
309
407
|
catch (err) {
|
|
310
408
|
if (isKtdCreateEndpointUnavailable(err)) {
|
|
@@ -321,7 +419,7 @@ export async function writeActionCreate(ctx) {
|
|
|
321
419
|
if (source) {
|
|
322
420
|
const { source: currentEnvelope } = await client.getKtd(name);
|
|
323
421
|
const body = rewriteKtdText(currentEnvelope, source);
|
|
324
|
-
await safeUpdateObject(client.http, client.safety, objectUrl, body, SKTD_V2_CONTENT_TYPE, effectiveTransport,
|
|
422
|
+
await safeUpdateObject(client.http, client.safety, objectUrl, body, SKTD_V2_CONTENT_TYPE, effectiveTransport, getCachedFeatures()?.abapRelease);
|
|
325
423
|
invalidateWrittenObject(type, name);
|
|
326
424
|
return textResult(`Created SKTD ${name} in package ${pkg} and wrote Markdown content.\nNext step: SAPActivate(type="SKTD", name="${name}").\n${ktdResult}`);
|
|
327
425
|
}
|
|
@@ -343,11 +441,11 @@ export async function writeActionCreate(ctx) {
|
|
|
343
441
|
// DOMA/DTEL/BDEF require vendor-specific content types; all other types use
|
|
344
442
|
// 'application/*' — the wildcard lets the SAP server resolve the correct
|
|
345
443
|
// handler (matching how ADT Eclipse and abap-adt-api send requests).
|
|
346
|
-
const contentType = createContentTypeForType(type, cloud);
|
|
444
|
+
const contentType = createContentTypeForType(type, cloud, type === 'INCL' && String(args.group ?? '').trim() !== '');
|
|
347
445
|
const needsPackageParam = type === 'BDEF' || type === 'TABL' || type === 'TABL/DT' || type === 'TABL/DS';
|
|
348
446
|
let result;
|
|
349
447
|
try {
|
|
350
|
-
result = await createObject(client.http, client.safety, createUrl, body, contentType, effectiveTransport, needsPackageParam ? pkg : undefined,
|
|
448
|
+
result = await createObject(client.http, client.safety, createUrl, body, contentType, effectiveTransport, needsPackageParam ? pkg : undefined, getCachedFeatures()?.abapRelease, systemType, name);
|
|
351
449
|
}
|
|
352
450
|
catch (createErr) {
|
|
353
451
|
if (createErr instanceof AdtApiError && (createErr.statusCode === 400 || createErr.statusCode === 409)) {
|
|
@@ -370,6 +468,9 @@ export async function writeActionCreate(ctx) {
|
|
|
370
468
|
// opportunistic only — package create falls back to an explicit `responsible`
|
|
371
469
|
}
|
|
372
470
|
}
|
|
471
|
+
if (type === 'FUNC' && metadataProperties.processingType !== undefined) {
|
|
472
|
+
await persistFunctionModuleProcessingMetadata(client, objectUrl, name, metadataProperties.processingType, metadataProperties.updateTaskKind, effectiveTransport);
|
|
473
|
+
}
|
|
373
474
|
if (isMetadataWriteType(type)) {
|
|
374
475
|
// SAP's DTEL POST ignores labels, searchHelp, etc. — they require a follow-up PUT.
|
|
375
476
|
// Use withStatefulSession directly (not safeUpdateObject) to keep the lock cycle
|
|
@@ -377,7 +478,7 @@ export async function writeActionCreate(ctx) {
|
|
|
377
478
|
if (type === 'DTEL' && dtelNeedsPostCreateUpdate(metadataProperties)) {
|
|
378
479
|
const ct = vendorContentTypeForType(type);
|
|
379
480
|
await client.http.withStatefulSession(async (session) => {
|
|
380
|
-
const lock = await lockObject(session, client.safety, objectUrl, 'MODIFY',
|
|
481
|
+
const lock = await lockObject(session, client.safety, objectUrl, 'MODIFY', getCachedFeatures()?.abapRelease, systemType);
|
|
381
482
|
const lockTransport = effectiveTransport ?? (lock.corrNr || undefined);
|
|
382
483
|
try {
|
|
383
484
|
await updateObject(session, client.safety, objectUrl, body, lock.lockHandle, ct, lockTransport);
|
|
@@ -391,7 +492,7 @@ export async function writeActionCreate(ctx) {
|
|
|
391
492
|
if (type === 'MSAG' && Array.isArray(metadataProperties.messages) && metadataProperties.messages.length > 0) {
|
|
392
493
|
const ct = vendorContentTypeForType(type);
|
|
393
494
|
await client.http.withStatefulSession(async (session) => {
|
|
394
|
-
const lock = await lockObject(session, client.safety, objectUrl, 'MODIFY',
|
|
495
|
+
const lock = await lockObject(session, client.safety, objectUrl, 'MODIFY', getCachedFeatures()?.abapRelease, systemType);
|
|
395
496
|
const lockTransport = effectiveTransport ?? (lock.corrNr || undefined);
|
|
396
497
|
try {
|
|
397
498
|
await updateObject(session, client.safety, objectUrl, body, lock.lockHandle, ct, lockTransport);
|
|
@@ -417,55 +518,26 @@ export async function writeActionCreate(ctx) {
|
|
|
417
518
|
// provided we must follow up with a source PUT even when `source` is
|
|
418
519
|
// omitted (the array alone synthesizes a minimal FUNCTION/ENDFUNCTION
|
|
419
520
|
// body containing the signature clause).
|
|
420
|
-
const
|
|
421
|
-
|
|
521
|
+
const funcPreparation = type === 'FUNC'
|
|
522
|
+
? prepareFunctionModuleCreateSource(name, source, args.parameters)
|
|
523
|
+
: { shouldWrite: !!source, source: source ?? '', warnings: [] };
|
|
524
|
+
const shouldWriteSource = funcPreparation.shouldWrite;
|
|
422
525
|
if (shouldWriteSource) {
|
|
423
|
-
// FUNC
|
|
424
|
-
//
|
|
425
|
-
|
|
426
|
-
let fmParamStripWarning;
|
|
427
|
-
let fmParamMergeWarning;
|
|
428
|
-
if (type === 'FUNC') {
|
|
429
|
-
if (funcParameters !== undefined) {
|
|
430
|
-
let baseSource;
|
|
431
|
-
if (!createSource || createSource.trim() === '') {
|
|
432
|
-
baseSource = `FUNCTION ${name}.\nENDFUNCTION.\n`;
|
|
433
|
-
}
|
|
434
|
-
else if (!/^\s*FUNCTION\s+/i.test(createSource)) {
|
|
435
|
-
// Body-only source — wrap so the splicer has a signature region.
|
|
436
|
-
baseSource = `FUNCTION ${name}.\n${createSource}\nENDFUNCTION.\n`;
|
|
437
|
-
}
|
|
438
|
-
else {
|
|
439
|
-
baseSource = createSource;
|
|
440
|
-
}
|
|
441
|
-
try {
|
|
442
|
-
createSource = spliceFmSignature(baseSource, name, funcParameters);
|
|
443
|
-
}
|
|
444
|
-
catch {
|
|
445
|
-
createSource = baseSource;
|
|
446
|
-
fmParamMergeWarning =
|
|
447
|
-
'Could not splice structured parameters: source did not start with FUNCTION keyword. Used the supplied source verbatim.';
|
|
448
|
-
}
|
|
449
|
-
}
|
|
450
|
-
const stripped = stripFmParamCommentBlock(createSource);
|
|
451
|
-
createSource = stripped.source;
|
|
452
|
-
if (stripped.wasStripped) {
|
|
453
|
-
fmParamStripWarning =
|
|
454
|
-
'Stripped *"…IMPORTING/EXPORTING…*" parameter comment blocks (pass `parameters` as a structured array instead).';
|
|
455
|
-
}
|
|
456
|
-
}
|
|
526
|
+
// FUNC processing metadata is paired with a source signature prepared above;
|
|
527
|
+
// other object types use their supplied source unchanged.
|
|
528
|
+
const createSource = funcPreparation.source;
|
|
457
529
|
// Pre-write lint validation
|
|
458
530
|
const lintWarnings = runPreWriteLint(createSource, type, name, config, lintOverride);
|
|
459
531
|
if (lintWarnings.blocked) {
|
|
460
532
|
return textResult(`Created ${type} ${name} in package ${pkg}, but source was rejected by lint:\n${lintWarnings.result.content[0].text}`);
|
|
461
533
|
}
|
|
462
|
-
await safeUpdateSource(client.http, client.safety, objectUrl, srcUrl, createSource, effectiveTransport,
|
|
534
|
+
await safeUpdateSource(client.http, client.safety, objectUrl, srcUrl, createSource, effectiveTransport, getCachedFeatures()?.abapRelease);
|
|
463
535
|
const bdefExtensionWarning = bdefExtensionBase
|
|
464
536
|
? await warnIfBdefExtensionUnconfirmed(client, name, bdefExtensionBase)
|
|
465
537
|
: undefined;
|
|
466
538
|
invalidateWrittenObject(type, name);
|
|
467
539
|
const msg = `Created ${type} ${name} in package ${pkg} and wrote source code.`;
|
|
468
|
-
const warnings = mergePreWriteWarnings(preflightWarnings.warnings, lintWarnings.warnings,
|
|
540
|
+
const warnings = mergePreWriteWarnings(preflightWarnings.warnings, lintWarnings.warnings, ...funcPreparation.warnings, bdefExtensionWarning);
|
|
469
541
|
return warnings ? textResult(`${msg}\n\n${warnings}`) : textResult(msg);
|
|
470
542
|
}
|
|
471
543
|
return textResult(`Created ${type} ${name} in package ${pkg}.\n${result}`);
|
|
@@ -487,8 +559,31 @@ export async function writeActionBatchCreate(ctx) {
|
|
|
487
559
|
const objName = String(obj.name ?? '');
|
|
488
560
|
const objPackage = normalizePackageOverride(obj.package, defaultPackage);
|
|
489
561
|
const explicitTransport = normalizeTransportOverride(obj.transport) ?? transport;
|
|
490
|
-
|
|
562
|
+
const group = objType === 'FUNC' ? String(obj.group ?? args.group ?? '').trim() : undefined;
|
|
563
|
+
const objectUrl = objType === 'FUNC' ? (group ? functionModuleObjectUrl(group, objName) : '') : objectUrlForType(objType, objName);
|
|
564
|
+
return { obj, type: objType, name: objName, packageName: objPackage, explicitTransport, group, objectUrl };
|
|
491
565
|
});
|
|
566
|
+
const functionWithoutGroup = batchPlan.find((item) => item.type === 'FUNC' && !item.group);
|
|
567
|
+
if (functionWithoutGroup) {
|
|
568
|
+
return errorResult(`FUNC ${functionWithoutGroup.name} in batch_create requires "group" on the object entry or top-level request.`);
|
|
569
|
+
}
|
|
570
|
+
// A FUNC is contained by its FUGR and inherits the parent's package. Resolve
|
|
571
|
+
// that package before any safety or transport check; trusting the batch's
|
|
572
|
+
// caller-supplied/default package would gate the wrong object boundary.
|
|
573
|
+
try {
|
|
574
|
+
for (const plan of batchPlan) {
|
|
575
|
+
if (plan.type === 'FUNC') {
|
|
576
|
+
plan.packageName = await resolveFunctionGroupCreatePackage(client, plan.group,
|
|
577
|
+
// The top-level package is the default for ordinary batch entries,
|
|
578
|
+
// not a claim about a contained FUNC. Only an item-level package is
|
|
579
|
+
// explicit enough to assert the inherited FUGR package.
|
|
580
|
+
plan.obj.package);
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
catch (err) {
|
|
585
|
+
return errorResult(err instanceof Error ? err.message : String(err));
|
|
586
|
+
}
|
|
492
587
|
// Check every target package before starting any creates.
|
|
493
588
|
// Resolver is shared across the loop so subtree BFS happens once even when
|
|
494
589
|
// many objects target descendants of the same `ZFOO/**` root.
|
|
@@ -511,8 +606,7 @@ export async function writeActionBatchCreate(ctx) {
|
|
|
511
606
|
}
|
|
512
607
|
for (const [pkg, plan] of firstPlanNeedingTransportByPackage) {
|
|
513
608
|
try {
|
|
514
|
-
const
|
|
515
|
-
const transportInfo = await getTransportInfo(client.http, client.safety, firstUrl, pkg, 'I');
|
|
609
|
+
const transportInfo = await getTransportInfo(client.http, client.safety, plan.objectUrl, pkg, 'I');
|
|
516
610
|
if (transportInfo.lockedTransport) {
|
|
517
611
|
autoTransportByPackage.set(pkg, transportInfo.lockedTransport);
|
|
518
612
|
}
|
|
@@ -556,11 +650,16 @@ export async function writeActionBatchCreate(ctx) {
|
|
|
556
650
|
const cloud = systemType === 'btp';
|
|
557
651
|
const responsible = config.username || (await client.getEffectiveUser());
|
|
558
652
|
for (const plan of batchPlan) {
|
|
559
|
-
const { obj, type: objType, name: objName, packageName: objPackage } = plan;
|
|
653
|
+
const { obj, type: objType, name: objName, packageName: objPackage, objectUrl: objUrl } = plan;
|
|
560
654
|
const objTransport = plan.explicitTransport ?? autoTransportByPackage.get(objPackage);
|
|
561
655
|
const metadataObject = isMetadataWriteType(objType);
|
|
562
|
-
|
|
656
|
+
let objSource = obj.source ? String(obj.source) : undefined;
|
|
563
657
|
const objDescription = String(obj.description ?? objName);
|
|
658
|
+
if (objType === 'FUNC') {
|
|
659
|
+
const prepared = prepareFunctionModuleCreateSource(objName, objSource, obj.parameters);
|
|
660
|
+
objSource = prepared.shouldWrite ? prepared.source : undefined;
|
|
661
|
+
batchWarnings.push(...prepared.warnings.map((warning) => `${objType} ${objName}: ${warning}`));
|
|
662
|
+
}
|
|
564
663
|
// Mixed-case object name rejection (matches the create-path check above).
|
|
565
664
|
// Universal SAP convention — TADIR is uppercase on every release.
|
|
566
665
|
// Cheap check first: no HTTP call, fail fast on bad names.
|
|
@@ -608,7 +707,7 @@ export async function writeActionBatchCreate(ctx) {
|
|
|
608
707
|
// Pre-validate source with lint BEFORE creating the object to avoid orphaned objects.
|
|
609
708
|
// Metadata objects (DOMA/DTEL) are XML-only and intentionally skip source lint.
|
|
610
709
|
if (!metadataObject && objSource) {
|
|
611
|
-
const preflightWarnings = runRapPreflightValidation(objSource, objType, objName,
|
|
710
|
+
const preflightWarnings = runRapPreflightValidation(objSource, objType, objName, getCachedFeatures(), config.systemType, preflightOverride);
|
|
612
711
|
if (preflightWarnings.blocked) {
|
|
613
712
|
results.push({
|
|
614
713
|
type: objType,
|
|
@@ -646,6 +745,17 @@ export async function writeActionBatchCreate(ctx) {
|
|
|
646
745
|
});
|
|
647
746
|
break;
|
|
648
747
|
}
|
|
748
|
+
// DOMA create needs /ddic/domains/ (absent wholesale on NW 7.50/7.51) — mirror the gate above.
|
|
749
|
+
if (objType === 'DOMA' && isDomainsEndpointAvailable() === false) {
|
|
750
|
+
results.push({
|
|
751
|
+
type: objType,
|
|
752
|
+
name: objName,
|
|
753
|
+
packageName: objPackage,
|
|
754
|
+
status: 'failed',
|
|
755
|
+
error: DOMA_WRITE_UNAVAILABLE_HINT,
|
|
756
|
+
});
|
|
757
|
+
break;
|
|
758
|
+
}
|
|
649
759
|
// TTYP create needs /ddic/tabletypes/ (absent on NW 7.50) — mirror the TABL/DT gate above.
|
|
650
760
|
if (objType === 'TTYP' && isTableTypesEndpointAvailable() === false) {
|
|
651
761
|
results.push({
|
|
@@ -657,9 +767,24 @@ export async function writeActionBatchCreate(ctx) {
|
|
|
657
767
|
});
|
|
658
768
|
break;
|
|
659
769
|
}
|
|
660
|
-
|
|
770
|
+
// Server-driven objects need the AFF engine (handleServerDrivenObjectWrite), which only runs on
|
|
771
|
+
// the single-object path. objectBasePath() has no SDO case and silently falls through to the
|
|
772
|
+
// PROG path, so without this guard a batched SDO would POST a program create body.
|
|
773
|
+
if (isServerDrivenObjectType(objType)) {
|
|
774
|
+
results.push({
|
|
775
|
+
type: objType,
|
|
776
|
+
name: objName,
|
|
777
|
+
packageName: objPackage,
|
|
778
|
+
status: 'failed',
|
|
779
|
+
error: `batch_create does not support server-driven object type ${objType}. Create it with a single SAPWrite(action="create", type="${objType}", name="${objName}") call.`,
|
|
780
|
+
});
|
|
781
|
+
break;
|
|
782
|
+
}
|
|
661
783
|
const createUrl = objUrl.replace(/\/[^/]+$/, '');
|
|
662
784
|
const objMetadataProps = getMetadataWriteProperties(obj);
|
|
785
|
+
if (objType === 'FUNC') {
|
|
786
|
+
objMetadataProps.group = plan.group;
|
|
787
|
+
}
|
|
663
788
|
// Sets behaviorExtension + baseBdef on the metadata so buildCreateXml emits the adtTemplate;
|
|
664
789
|
// the return value (used for the optional read-back warning) isn't needed in the batch path.
|
|
665
790
|
applyBdefBehaviorExtensionMetadata(objType, objSource, objMetadataProps);
|
|
@@ -667,7 +792,7 @@ export async function writeActionBatchCreate(ctx) {
|
|
|
667
792
|
const contentType = createContentTypeForType(objType, cloud);
|
|
668
793
|
const needsPackageParam = objType === 'BDEF' || objType === 'TABL' || objType === 'TABL/DT' || objType === 'TABL/DS';
|
|
669
794
|
try {
|
|
670
|
-
await createObject(client.http, client.safety, createUrl, body, contentType, objTransport, needsPackageParam ? objPackage : undefined,
|
|
795
|
+
await createObject(client.http, client.safety, createUrl, body, contentType, objTransport, needsPackageParam ? objPackage : undefined, getCachedFeatures()?.abapRelease, systemType, objName);
|
|
671
796
|
}
|
|
672
797
|
catch (createErr) {
|
|
673
798
|
if (createErr instanceof AdtApiError && (createErr.statusCode === 400 || createErr.statusCode === 409)) {
|
|
@@ -678,10 +803,13 @@ export async function writeActionBatchCreate(ctx) {
|
|
|
678
803
|
}
|
|
679
804
|
throw createErr;
|
|
680
805
|
}
|
|
806
|
+
if (objType === 'FUNC' && objMetadataProps.processingType !== undefined) {
|
|
807
|
+
await persistFunctionModuleProcessingMetadata(client, objUrl, objName, objMetadataProps.processingType, objMetadataProps.updateTaskKind, objTransport);
|
|
808
|
+
}
|
|
681
809
|
// Step 1b: DTEL POST ignores labels — follow up with PUT on main session
|
|
682
810
|
if (objType === 'DTEL' && dtelNeedsPostCreateUpdate(objMetadataProps)) {
|
|
683
811
|
await client.http.withStatefulSession(async (session) => {
|
|
684
|
-
const lock = await lockObject(session, client.safety, objUrl, 'MODIFY',
|
|
812
|
+
const lock = await lockObject(session, client.safety, objUrl, 'MODIFY', getCachedFeatures()?.abapRelease);
|
|
685
813
|
const lockTransport = objTransport ?? (lock.corrNr || undefined);
|
|
686
814
|
try {
|
|
687
815
|
await updateObject(session, client.safety, objUrl, body, lock.lockHandle, contentType, lockTransport);
|
|
@@ -697,30 +825,12 @@ export async function writeActionBatchCreate(ctx) {
|
|
|
697
825
|
}
|
|
698
826
|
// Step 2: Write source if provided
|
|
699
827
|
if (!metadataObject && objSource) {
|
|
700
|
-
const srcUrl = sourceUrlForType(objType, objName);
|
|
701
|
-
await safeUpdateSource(client.http, client.safety, objUrl, srcUrl, objSource, objTransport,
|
|
702
|
-
}
|
|
703
|
-
// Resolve the activation URL up front so both the inline path and the
|
|
704
|
-
// deferred terminal-activate path use the same URL. FUNC needs the parent
|
|
705
|
-
// function-group baked into the path (issue #250); objectUrlForType throws
|
|
706
|
-
// for FUNC so we mirror the FUNC-aware resolver from handleSAPActivate. For
|
|
707
|
-
// TABL we keep objUrl (already resolved to /tables/) — DDIC-structure FMs
|
|
708
|
-
// aren't a real concept and the create path doesn't expose one.
|
|
709
|
-
let activationUrl = objUrl;
|
|
710
|
-
if (objType === 'FUNC') {
|
|
711
|
-
let group = String(obj.group ?? args.group ?? '').trim();
|
|
712
|
-
if (!group) {
|
|
713
|
-
const resolved = cachingLayer
|
|
714
|
-
? await cachingLayer.resolveFuncGroup(client, objName)
|
|
715
|
-
: await client.resolveFunctionGroup(objName);
|
|
716
|
-
if (!resolved) {
|
|
717
|
-
throw new Error(`Cannot resolve function group for FM "${objName}" in batch_create activation step. Provide "group" on the FUNC entry.`);
|
|
718
|
-
}
|
|
719
|
-
group = resolved;
|
|
720
|
-
}
|
|
721
|
-
const groupLc = encodeURIComponent(group.toLowerCase());
|
|
722
|
-
activationUrl = `/sap/bc/adt/functions/groups/${groupLc}/fmodules/${encodeURIComponent(objName.toLowerCase())}`;
|
|
828
|
+
const srcUrl = objType === 'FUNC' ? `${objUrl}/source/main` : sourceUrlForType(objType, objName);
|
|
829
|
+
await safeUpdateSource(client.http, client.safety, objUrl, srcUrl, objSource, objTransport, getCachedFeatures()?.abapRelease);
|
|
723
830
|
}
|
|
831
|
+
// objUrl is already subtype-aware (including parent-group routing for FUNC),
|
|
832
|
+
// so source and activation share one canonical address.
|
|
833
|
+
const activationUrl = objUrl;
|
|
724
834
|
if (activateAtEnd) {
|
|
725
835
|
// Step 3 deferred: track this object for the terminal activateBatch call.
|
|
726
836
|
// Cache invalidation also moves to AFTER the terminal activate succeeds —
|