@mcp-abap-adt/adt-clients 26.0.0 → 26.1.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 +1 -1
- package/dist/core/behaviorImplementation/AdtBehaviorImplementation.js +2 -2
- package/dist/core/class/AdtClass.d.ts.map +1 -1
- package/dist/core/class/AdtClass.js +2 -1
- package/dist/core/class/create.d.ts.map +1 -1
- package/dist/core/class/create.js +6 -3
- package/dist/core/class/types.d.ts +0 -1
- package/dist/core/class/types.d.ts.map +1 -1
- package/dist/runtime/atc/AdtAtc.d.ts +13 -0
- package/dist/runtime/atc/AdtAtc.d.ts.map +1 -1
- package/dist/runtime/atc/AdtAtc.js +11 -0
- package/dist/runtime/atc/run.d.ts +15 -0
- package/dist/runtime/atc/run.d.ts.map +1 -1
- package/dist/runtime/atc/run.js +26 -0
- package/docs/usage/CLIENT_API_REFERENCE.md +18 -3
- package/docs/usage/OBJECT_LIFECYCLE.md +10 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -905,7 +905,7 @@ Since **24.0.0** there is no unit-test handler at all: every member `getUnitTest
|
|
|
905
905
|
|
|
906
906
|
Since **25.0.0** ATC takes programs and every kind of include, `interfaces-adt` is `^12.0.0`, group operations refuse a reference they cannot address before any request, and a legacy client answers a refusal for an object type the system lacks instead of throwing. See [MIGRATION-25.md](docs/usage/MIGRATION-25.md).
|
|
907
907
|
|
|
908
|
-
The runtime client narrows the same way. `AdtRuntimeClient.getAtc()` implements `IAtcRunStatusReadable & IAtcFindings`, plus `resolveCheckVariant`, `createWorklist` and `startRun` — a check run is three requests, started and then read, never created, locked, activated or versioned, and the type says so rather than offering the rest and throwing. It is not `IAdtRunnable` since 19.0.0: that atom's `run` is one call.
|
|
908
|
+
The runtime client narrows the same way. `AdtRuntimeClient.getAtc()` implements `IAtcRunStatusReadable & IAtcFindings`, plus `resolveCheckVariant`, `listCheckVariants`, `createWorklist` and `startRun` — a check run is three requests, started and then read, never created, locked, activated or versioned, and the type says so rather than offering the rest and throwing. It is not `IAdtRunnable` since 19.0.0: that atom's `run` is one call.
|
|
909
909
|
|
|
910
910
|
**A guard keeps this true.** `src/__tests__/unit/capabilities/` compares all 37 factory return types against the 12 atoms in both directions at compile time, calls every method of every declared capability against a recording connection to check it issues the request its capability names, and fails if a new factory appears without an entry. Adding a throwing method back to a narrowed handler stops compiling. The guard walks `AdtClient` and `AdtClientLegacy` only; the runtime accessors are pinned by `src/__tests__/unit/clients/AdtRuntimeClient.factory.test.ts`.
|
|
911
911
|
|
|
@@ -56,8 +56,8 @@ class AdtBehaviorImplementation {
|
|
|
56
56
|
constructor(connection, logger, lockRegistry,
|
|
57
57
|
// The one cast in this file, and it is on the default. See AdtClass.
|
|
58
58
|
results = types_1.classDocuments,
|
|
59
|
-
// Handed to the inner class so a create carries the
|
|
60
|
-
// master
|
|
59
|
+
// Handed to the inner class so a create carries the master system and
|
|
60
|
+
// master language the client knows, like a class create does.
|
|
61
61
|
systemContext) {
|
|
62
62
|
this.results = results;
|
|
63
63
|
this.connection = connection;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdtClass.d.ts","sourceRoot":"","sources":["../../../src/core/class/AdtClass.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AdtClass.d.ts","sourceRoot":"","sources":["../../../src/core/class/AdtClass.ts"],"names":[],"mappings":"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"}
|
|
@@ -70,7 +70,8 @@ class AdtClass extends AdtClassMemberBase_1.AdtClassMemberBase {
|
|
|
70
70
|
final: config.final,
|
|
71
71
|
create_protected: config.createProtected,
|
|
72
72
|
master_system: config.masterSystem ?? this.systemContext.masterSystem,
|
|
73
|
-
|
|
73
|
+
// config.responsible is not sent: see create.ts — SAP would record
|
|
74
|
+
// it as the creator, not as the responsible person.
|
|
74
75
|
masterLanguage: config.masterLanguage ?? this.systemContext.masterLanguage,
|
|
75
76
|
template_xml: config.classTemplate,
|
|
76
77
|
}, this.logger, this.contentTypes), this.results.created, options?.analyse);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/core/class/create.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAK9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAIlD;;;;;GAKG;AACH,wBAAsB,MAAM,CAC1B,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,kBAAkB,EACxB,MAAM,CAAC,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,gBAAgB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/core/class/create.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAK9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAIlD;;;;;GAKG;AACH,wBAAsB,MAAM,CAC1B,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,kBAAkB,EACxB,MAAM,CAAC,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,gBAAgB,GAC9B,OAAO,CAAC,gBAAgB,CAAC,CAsG3B"}
|
|
@@ -20,7 +20,6 @@ async function create(connection, args, logger, contentTypes) {
|
|
|
20
20
|
const description = (0, internalUtils_1.limitDescription)(args.description || args.class_name || '');
|
|
21
21
|
const url = `${objects_1.CLASS.collection}${args.transport_request ? `?corrNr=${args.transport_request}` : ''}`;
|
|
22
22
|
const masterSystem = args.master_system || '';
|
|
23
|
-
const username = args.responsible || '';
|
|
24
23
|
const finalAttr = args.final ? 'true' : 'false';
|
|
25
24
|
const visibilityAttr = args.create_protected ? 'protected' : 'public';
|
|
26
25
|
const superClassXml = args.superclass
|
|
@@ -29,14 +28,18 @@ async function create(connection, args, logger, contentTypes) {
|
|
|
29
28
|
const masterSystemAttr = masterSystem
|
|
30
29
|
? ` adtcore:masterSystem="${masterSystem}"`
|
|
31
30
|
: '';
|
|
32
|
-
|
|
31
|
+
// No adtcore:responsible: a class create stores that attribute as the
|
|
32
|
+
// class's creator (createdBy), while the responsible person is always the
|
|
33
|
+
// logon user. Measured on-premise (2026-10-04): a create sending another
|
|
34
|
+
// user as responsible left responsible = logon user, createdBy = that user;
|
|
35
|
+
// no ADT request changes it afterwards (the metadata PUT ignores it).
|
|
33
36
|
const abapSourceNamespace = args.template_xml
|
|
34
37
|
? ' xmlns:abapsource="http://www.sap.com/adt/abapsource"'
|
|
35
38
|
: '';
|
|
36
39
|
const templateSection = args.template_xml
|
|
37
40
|
? `\n\n ${args.template_xml}\n\n`
|
|
38
41
|
: '\n\n';
|
|
39
|
-
const metadataXml = `<?xml version="1.0" encoding="UTF-8"?><class:abapClass xmlns:class="http://www.sap.com/adt/oo/classes" xmlns:adtcore="http://www.sap.com/adt/core"${abapSourceNamespace} adtcore:description="${description}" adtcore:language="${args.masterLanguage || 'EN'}" adtcore:name="${args.class_name}" adtcore:type="CLAS/OC" adtcore:masterLanguage="${args.masterLanguage || 'EN'}"${masterSystemAttr}
|
|
42
|
+
const metadataXml = `<?xml version="1.0" encoding="UTF-8"?><class:abapClass xmlns:class="http://www.sap.com/adt/oo/classes" xmlns:adtcore="http://www.sap.com/adt/core"${abapSourceNamespace} adtcore:description="${description}" adtcore:language="${args.masterLanguage || 'EN'}" adtcore:name="${args.class_name}" adtcore:type="CLAS/OC" adtcore:masterLanguage="${args.masterLanguage || 'EN'}"${masterSystemAttr} class:final="${finalAttr}" class:visibility="${visibilityAttr}">
|
|
40
43
|
|
|
41
44
|
|
|
42
45
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/class/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAIpE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,sEAAsE;AACtE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE3C,oCAAoC;AACpC,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE3C;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEzC,mEAAmE;AACnE,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC;AAErC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3C,0DAA0D;IAC1D,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACjD,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,4BAA4B;IAC5B,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;CAClD;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAaF,CAAC;AAE1B;;;;;;;;;GASG;AAEH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/class/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAIpE,YAAY,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC,sEAAsE;AACtE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AAEnC;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEtC;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE3C,oCAAoC;AACpC,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE3C;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEzC,mEAAmE;AACnE,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC;AAErC;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC3C,0DAA0D;IAC1D,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACjD,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,4BAA4B;IAC5B,QAAQ,CAAC,aAAa,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;CAClD;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;CAaF,CAAC;AAE1B;;;;;;;;;GASG;AAEH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B"}
|
|
@@ -22,6 +22,8 @@ import type { ILogger } from '@mcp-abap-adt/interfaces-utils';
|
|
|
22
22
|
export interface IAtcResults {
|
|
23
23
|
/** `/atc/customizing` — `resolveCheckVariant`. */
|
|
24
24
|
readonly checkVariant: IResultStrategy<unknown>;
|
|
25
|
+
/** `/atc/variants`, `nameditem:namedItemList` — `listCheckVariants`. */
|
|
26
|
+
readonly checkVariants: IResultStrategy<unknown>;
|
|
25
27
|
/** `/atc/worklists` POST, a bare id in `text/plain` — `createWorklist`. */
|
|
26
28
|
readonly worklist: IResultStrategy<unknown>;
|
|
27
29
|
/**
|
|
@@ -44,6 +46,7 @@ export interface IAtcResults {
|
|
|
44
46
|
*/
|
|
45
47
|
export declare const atcDocuments: {
|
|
46
48
|
checkVariant: IResultStrategy<string>;
|
|
49
|
+
checkVariants: IResultStrategy<string>;
|
|
47
50
|
worklist: IResultStrategy<string>;
|
|
48
51
|
startedRun: IResultStrategy<string>;
|
|
49
52
|
waitingRun: IResultStrategy<string>;
|
|
@@ -94,6 +97,16 @@ export declare class AdtAtc<R extends IAtcResults = typeof atcDocuments> impleme
|
|
|
94
97
|
* reads the variant out of it; a customizing without one reads as `''`.
|
|
95
98
|
*/
|
|
96
99
|
resolveCheckVariant<E extends IAdtError = IAdtError>(options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['checkVariant']>, E>>;
|
|
100
|
+
/**
|
|
101
|
+
* The check variants whose name matches the pattern — `/atc/variants`.
|
|
102
|
+
*
|
|
103
|
+
* One request. `name` is required because the list is empty without it;
|
|
104
|
+
* `*` lists every variant. See `listAtcCheckVariants` for what the limit and
|
|
105
|
+
* the answer's count do and do not say.
|
|
106
|
+
*/
|
|
107
|
+
listCheckVariants<E extends IAdtError = IAdtError>(name: string, options?: {
|
|
108
|
+
maxItemCount?: number;
|
|
109
|
+
} & IAdtAnalyseOptions<E>): Promise<IAdtResponse<ReturnType<R['checkVariants']>, E>>;
|
|
97
110
|
/**
|
|
98
111
|
* A worklist for a variant — `/atc/worklists`.
|
|
99
112
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdtAtc.d.ts","sourceRoot":"","sources":["../../../src/runtime/atc/AdtAtc.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAEL,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"AdtAtc.d.ts","sourceRoot":"","sources":["../../../src/runtime/atc/AdtAtc.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,7 @@ const DEFAULT_MAXIMUM_VERDICTS = 100;
|
|
|
32
32
|
*/
|
|
33
33
|
exports.atcDocuments = {
|
|
34
34
|
checkVariant: resultStrategy_1.rawDocument,
|
|
35
|
+
checkVariants: resultStrategy_1.rawDocument,
|
|
35
36
|
worklist: resultStrategy_1.rawDocument,
|
|
36
37
|
startedRun: resultStrategy_1.rawDocument,
|
|
37
38
|
waitingRun: resultStrategy_1.rawDocument,
|
|
@@ -83,6 +84,16 @@ class AdtAtc {
|
|
|
83
84
|
async resolveCheckVariant(options) {
|
|
84
85
|
return (0, adtResponse_1.answering)(() => (0, run_1.getAtcCustomizing)(this.connection), this.results.checkVariant, options?.analyse);
|
|
85
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* The check variants whose name matches the pattern — `/atc/variants`.
|
|
89
|
+
*
|
|
90
|
+
* One request. `name` is required because the list is empty without it;
|
|
91
|
+
* `*` lists every variant. See `listAtcCheckVariants` for what the limit and
|
|
92
|
+
* the answer's count do and do not say.
|
|
93
|
+
*/
|
|
94
|
+
async listCheckVariants(name, options) {
|
|
95
|
+
return (0, adtResponse_1.answering)(() => (0, run_1.listAtcCheckVariants)(this.connection, name, options?.maxItemCount), this.results.checkVariants, options?.analyse);
|
|
96
|
+
}
|
|
86
97
|
/**
|
|
87
98
|
* A worklist for a variant — `/atc/worklists`.
|
|
88
99
|
*
|
|
@@ -29,6 +29,21 @@ export declare function buildAtcObjectUri(ref: IAtcObjectRef): string;
|
|
|
29
29
|
* controller does not support method POST"**.
|
|
30
30
|
*/
|
|
31
31
|
export declare function getAtcCustomizing(connection: IAbapConnection): Promise<IAdtWireResponse>;
|
|
32
|
+
/**
|
|
33
|
+
* The check variants whose name matches `name` — `/atc/variants`.
|
|
34
|
+
*
|
|
35
|
+
* `name` is a pattern: `*` is a wildcard, the match ignores case, and without
|
|
36
|
+
* a `*` it matches one name exactly (`DEF` finds no `DEFAULT`). It is the
|
|
37
|
+
* argument because the list is empty without it, not complete — a system with
|
|
38
|
+
* every variant looks like one with none. `maxItemCount` limits what comes
|
|
39
|
+
* back; `0` or none is no limit. On SAP_BASIS 758 and 816 the limit was exact;
|
|
40
|
+
* on SAP BTP ABAP Environment a limit of 3 answered 6 (2026-10-10). The
|
|
41
|
+
* answer's `totalItemCount` counts what was returned, not what exists, so a
|
|
42
|
+
* truncated list does not say so. `data`, the other parameter the discovery
|
|
43
|
+
* template names, filtered every name out on all three, and is left out.
|
|
44
|
+
* Answered as `application/xml` (or `…nameditems.v1+xml`); JSON is 406.
|
|
45
|
+
*/
|
|
46
|
+
export declare function listAtcCheckVariants(connection: IAbapConnection, name: string, maxItemCount?: number): Promise<IAdtWireResponse>;
|
|
32
47
|
/**
|
|
33
48
|
* Create the worklist a run writes its findings into.
|
|
34
49
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/runtime/atc/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,yCAAyC,CAAC;AAmDjD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAkB5D;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,eAAe,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,eAAe,EAC3B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAW3B;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAC7B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,eAAe,EAAE,MAAM,GACtB,MAAM,CAcR;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,gBAAgB,CAAC,CAQ3B;AAED,8EAA8E;AAC9E,wBAAsB,eAAe,CACnC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAO3B"}
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/runtime/atc/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,yCAAyC,CAAC;AAmDjD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAkB5D;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,eAAe,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,MAAM,EACZ,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,gBAAgB,CAAC,CAU3B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,eAAe,EAC3B,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC,CAW3B;AAED,wEAAwE;AACxE,wBAAgB,eAAe,CAC7B,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,eAAe,EAAE,MAAM,GACtB,MAAM,CAcR;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,SAAS,MAAM,EAAE,EAC7B,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,gBAAgB,CAAC,CAQ3B;AAED,8EAA8E;AAC9E,wBAAsB,eAAe,CACnC,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC,CAO3B"}
|
package/dist/runtime/atc/run.js
CHANGED
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.buildAtcObjectUri = buildAtcObjectUri;
|
|
17
17
|
exports.getAtcCustomizing = getAtcCustomizing;
|
|
18
|
+
exports.listAtcCheckVariants = listAtcCheckVariants;
|
|
18
19
|
exports.createAtcWorklist = createAtcWorklist;
|
|
19
20
|
exports.buildRunPayload = buildRunPayload;
|
|
20
21
|
exports.startAtcRun = startAtcRun;
|
|
@@ -84,6 +85,31 @@ async function getAtcCustomizing(connection) {
|
|
|
84
85
|
headers: { Accept: contentTypes_1.ACCEPT_ATC_CUSTOMIZING },
|
|
85
86
|
});
|
|
86
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* The check variants whose name matches `name` — `/atc/variants`.
|
|
90
|
+
*
|
|
91
|
+
* `name` is a pattern: `*` is a wildcard, the match ignores case, and without
|
|
92
|
+
* a `*` it matches one name exactly (`DEF` finds no `DEFAULT`). It is the
|
|
93
|
+
* argument because the list is empty without it, not complete — a system with
|
|
94
|
+
* every variant looks like one with none. `maxItemCount` limits what comes
|
|
95
|
+
* back; `0` or none is no limit. On SAP_BASIS 758 and 816 the limit was exact;
|
|
96
|
+
* on SAP BTP ABAP Environment a limit of 3 answered 6 (2026-10-10). The
|
|
97
|
+
* answer's `totalItemCount` counts what was returned, not what exists, so a
|
|
98
|
+
* truncated list does not say so. `data`, the other parameter the discovery
|
|
99
|
+
* template names, filtered every name out on all three, and is left out.
|
|
100
|
+
* Answered as `application/xml` (or `…nameditems.v1+xml`); JSON is 406.
|
|
101
|
+
*/
|
|
102
|
+
async function listAtcCheckVariants(connection, name, maxItemCount) {
|
|
103
|
+
const query = new URLSearchParams({ name });
|
|
104
|
+
if (maxItemCount !== undefined)
|
|
105
|
+
query.set('maxItemCount', String(maxItemCount));
|
|
106
|
+
return connection.makeAdtRequest({
|
|
107
|
+
url: `${ATC}/variants?${query}`,
|
|
108
|
+
method: 'GET',
|
|
109
|
+
timeout: (0, timeouts_1.getTimeout)('default'),
|
|
110
|
+
headers: { Accept: 'application/xml' },
|
|
111
|
+
});
|
|
112
|
+
}
|
|
87
113
|
/**
|
|
88
114
|
* Create the worklist a run writes its findings into.
|
|
89
115
|
*
|
|
@@ -1598,6 +1598,22 @@ A system's nominated check variant may not run. On one on-premise system it
|
|
|
1598
1598
|
answered `TOOL_FAILURE` "ATC check run aborted, due to missing prerequisites",
|
|
1599
1599
|
while `DEFAULT` ran. In that case pass a variant to `createWorklist` yourself.
|
|
1600
1600
|
|
|
1601
|
+
**Which variants exist: `listCheckVariants(name, { maxItemCount? })`** — one
|
|
1602
|
+
`GET /atc/variants`, answering a `nameditem:namedItemList`. `name` is a pattern
|
|
1603
|
+
and it is required, because without it the list is empty rather than complete:
|
|
1604
|
+
`*` lists every variant, the match ignores case, and a name without `*` matches
|
|
1605
|
+
exactly (`DEF` does not find `DEFAULT`). `maxItemCount` limits the answer, but
|
|
1606
|
+
not exactly everywhere — on SAP BTP ABAP Environment a limit of 3 answered 6 —
|
|
1607
|
+
and the answer's `totalItemCount` counts what came back, not what exists, so a
|
|
1608
|
+
limited list cannot say it was cut. Measured on SAP_BASIS 758 and 816 and on the
|
|
1609
|
+
cloud (2026-10-06/10); the variants differ by system (`DEFAULT` exists on
|
|
1610
|
+
premise, not on the cloud).
|
|
1611
|
+
|
|
1612
|
+
```typescript
|
|
1613
|
+
const variants = await atc.listCheckVariants('*'); // every one
|
|
1614
|
+
const cloud = await atc.listCheckVariants('abap_cloud*'); // any case
|
|
1615
|
+
```
|
|
1616
|
+
|
|
1601
1617
|
Every member answers the document as it arrived — `createWorklist` and
|
|
1602
1618
|
`resolveCheckVariant` included, which answer `IAdtResponse` like the rest since
|
|
1603
1619
|
23.0.0. The readings are in `@mcp-abap-adt/adt-strategies`:
|
|
@@ -1621,9 +1637,8 @@ const atc = runtime.getAtc({
|
|
|
1621
1637
|
runStatus: atcRunStatus,
|
|
1622
1638
|
});
|
|
1623
1639
|
|
|
1624
|
-
// The system's variant — or name one yourself
|
|
1625
|
-
//
|
|
1626
|
-
// of a usable one.
|
|
1640
|
+
// The system's variant — or name one yourself (listCheckVariants lists them)
|
|
1641
|
+
// and skip this request.
|
|
1627
1642
|
const variant = await atc.resolveCheckVariant();
|
|
1628
1643
|
if (!variant.ok || !variant.getResult().value) throw new Error('no check variant');
|
|
1629
1644
|
|
|
@@ -531,6 +531,16 @@ write**, and a service definition is created with an empty source (a create
|
|
|
531
531
|
that sends no responsible person is refused — a different thing).
|
|
532
532
|
`getVersions()` answers `ok` in every one of those states.
|
|
533
533
|
|
|
534
|
+
## A class create cannot set the responsible person
|
|
535
|
+
|
|
536
|
+
On a class create, SAP reads `adtcore:responsible` as the class's **creator**
|
|
537
|
+
(`createdBy`) and records the logon user as **responsible** whatever is sent;
|
|
538
|
+
a later metadata `PUT` does not change it either. So `getClass().create()`
|
|
539
|
+
(and a behavior implementation create) sends no `adtcore:responsible` — the
|
|
540
|
+
`responsible` in the config or the system context is not used for a class.
|
|
541
|
+
Measured on-premise, 2026-10-04. The responsible person of a class is changed
|
|
542
|
+
outside ADT (the object directory entry, SE03 / SE80).
|
|
543
|
+
|
|
534
544
|
## The name is taken from the POST onward, and `validate()` may not say so
|
|
535
545
|
|
|
536
546
|
Whatever the create leaves behind, it holds the name. A second create is refused
|