diff --git a/src/abap/JSONToAbapXml.ts b/src/abap/JSONToAbapXml.ts
new file mode 100644
index 0000000..fdb52f7
--- /dev/null
+++ b/src/abap/JSONToAbapXml.ts
@@ -0,0 +1,16 @@
+export function JSON2AbapXML(original: any, root: string = "DATA") {
+ //only flat objects for now, might extend later...
+ let inner = ""
+ for (const key of Object.keys(original))
+ if (original[key])
+ inner = `${inner}\n<${key}>${original[key] || ""}${key}>`
+ else inner = `${inner}\n<${key}/>`
+
+ return `
+
+ <${root}>
+ ${inner}
+ ${root}>
+
+`
+}
diff --git a/src/adt/AdtConnection.ts b/src/adt/AdtConnection.ts
index 723cb62..96bf4b0 100644
--- a/src/adt/AdtConnection.ts
+++ b/src/adt/AdtConnection.ts
@@ -94,7 +94,12 @@ export class AdtConnection {
})
})
}
-
+ createUri(path: string, query: string = "") {
+ return Uri.parse("adt://" + this.name).with({
+ path,
+ query
+ })
+ }
connect(): Promise {
return this.myrequest("/sap/bc/adt/compatibility/graph").then(
(response: request.Response) => {
diff --git a/src/adt/AdtServer.ts b/src/adt/AdtServer.ts
index c4fb777..a8bb607 100644
--- a/src/adt/AdtServer.ts
+++ b/src/adt/AdtServer.ts
@@ -4,6 +4,7 @@ import { MetaFolder } from "../fs/MetaFolder"
import { AbapObjectNode, AbapNode, isAbap } from "../fs/AbapNode"
import { AbapObject, TransportStatus } from "../abap/AbapObject"
import { getRemoteList } from "../config"
+import { JSON2AbapXML } from "../abap/JSONToAbapXml"
export const ADTBASEURL = "/sap/bc/adt/repository/nodestructure"
// visual studio paths are hierarchic, adt ones aren't
@@ -57,8 +58,17 @@ export class AdtServer {
const conn = await this.connectionP
await file.abapObject.lock(conn)
- if (file.abapObject.transport === TransportStatus.REQUIRED)
+ if (file.abapObject.transport === TransportStatus.REQUIRED) {
+ const response = await conn.request(
+ conn.createUri("/sap/bc/adt/cts/transportchecks"),
+ "POST",
+ {
+ body: JSON2AbapXML({ URI: file.abapObject.getContentsUri(conn).path })
+ }
+ )
+ console.log(response.body)
throw new Error("transport selection not supported(yet)")
+ }
await file.abapObject.setContents(conn, content)