<mavenAggregatedArtifactRecord _class='hudson.maven.reporters.MavenAggregatedArtifactRecord'><moduleRecord><mainArtifact><artifactId>com.trekglobal.idempiere.extensions.main</artifactId><canonicalName>com.trekglobal.idempiere.extensions.main-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>4da960446bbb5ebfa10f83ca57afa10e</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></mainArtifact><parent><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.main/126/mavenArtifacts/</url></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>com.trekglobal.idempiere.extensions.main-1.0.0-SNAPSHOT.pom</displayPath><fileName>com.trekglobal.idempiere.extensions.main-1.0.0-SNAPSHOT.pom</fileName><relativePath>com.trekglobal.idempiere.extensions/com.trekglobal.idempiere.extensions.main/1.0.0-SNAPSHOT/com.trekglobal.idempiere.extensions.main-1.0.0-SNAPSHOT.pom</relativePath></artifact><building>false</building><displayName>#126</displayName><duration>0</duration><estimatedDuration>345</estimatedDuration><fullDisplayName>idempiere-rest-master » com.trekglobal.idempiere.extensions.main #126</fullDisplayName><id>126</id><inProgress>false</inProgress><keepLog>false</keepLog><number>126</number><queueId>-1</queueId><result>NOT_BUILT</result><timestamp>1785552248196</timestamp><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.main/126/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'></changeSet><mavenArtifacts><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.main/126/mavenArtifacts/</url></mavenArtifacts></parent><pomArtifact><artifactId>com.trekglobal.idempiere.extensions.main</artifactId><canonicalName>com.trekglobal.idempiere.extensions.main-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>4da960446bbb5ebfa10f83ca57afa10e</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></pomArtifact><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.main/126/mavenArtifacts/</url></moduleRecord><moduleRecord><mainArtifact><artifactId>com.trekglobal.idempiere.extensions.p2</artifactId><canonicalName>com.trekglobal.idempiere.extensions.p2-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>05e296b67c0c19db23d520228ec88296</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></mainArtifact><parent><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.p2/126/mavenArtifacts/</url></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>com.trekglobal.idempiere.extensions.p2-1.0.0-SNAPSHOT.pom</displayPath><fileName>com.trekglobal.idempiere.extensions.p2-1.0.0-SNAPSHOT.pom</fileName><relativePath>com.trekglobal.idempiere.extensions/com.trekglobal.idempiere.extensions.p2/1.0.0-SNAPSHOT/com.trekglobal.idempiere.extensions.p2-1.0.0-SNAPSHOT.pom</relativePath></artifact><building>false</building><displayName>#126</displayName><duration>0</duration><estimatedDuration>6397</estimatedDuration><fullDisplayName>idempiere-rest-master » com.trekglobal.idempiere.extensions.p2 #126</fullDisplayName><id>126</id><inProgress>false</inProgress><keepLog>false</keepLog><number>126</number><queueId>-1</queueId><result>NOT_BUILT</result><timestamp>1785552248203</timestamp><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.p2/126/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'></changeSet><mavenArtifacts><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.p2/126/mavenArtifacts/</url></mavenArtifacts></parent><pomArtifact><artifactId>com.trekglobal.idempiere.extensions.p2</artifactId><canonicalName>com.trekglobal.idempiere.extensions.p2-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>05e296b67c0c19db23d520228ec88296</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></pomArtifact><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.extensions.p2/126/mavenArtifacts/</url></moduleRecord><moduleRecord><mainArtifact><artifactId>com.trekglobal.idempiere.rest.api</artifactId><canonicalName>com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>a5b813acbb38f45ca77e2c29eaf3e4a4</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></mainArtifact><parent><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/126/mavenArtifacts/</url></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom</displayPath><fileName>com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom</fileName><relativePath>com.trekglobal.idempiere.extensions/com.trekglobal.idempiere.rest.api/1.0.0-SNAPSHOT/com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom</relativePath></artifact><building>false</building><displayName>#126</displayName><duration>8989</duration><estimatedDuration>7656</estimatedDuration><fullDisplayName>idempiere-rest-master » com.trekglobal.idempiere.rest.api #126</fullDisplayName><id>126</id><inProgress>false</inProgress><keepLog>false</keepLog><number>126</number><queueId>-1</queueId><result>FAILURE</result><timestamp>1785552248201</timestamp><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/126/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/v1/resource/impl/BatchRequestResourseImpl.java</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/pom.xml</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/v1/resource/BatchRequestResource.java</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/META-INF/MANIFEST.MF</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/.classpath</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/openapi/idempiere-rest.yml</affectedPath><affectedPath>com.trekglobal.idempiere.rest.api/postman/trekglobal-idempiere-rest.postman_collection.json</affectedPath><commitId>427280be32686d308addb3bd78a3816c82707d89</commitId><timestamp>1785502559000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/noreply</absoluteUrl><fullName>noreply</fullName></author><authorEmail>noreply@github.com</authorEmail><comment>Batch reference resolution: bind$.jsonPathExpr + @#GlobalVar@ in v1/batch (#517)

* Add @Table.Column / @bind.Column / @#GlobalVar reference resolution to v1/batch

* Fix @#GlobalVar snapshot and reject duplicate batch aliases

Snapshot the calling session's context before any sub-request runs so
@#GlobalVar resolution isn't affected by ServerContext.dispose() calls
triggered by earlier sub-requests in the same batch.

Also reject an "as" alias that was already used earlier in the batch,
addressing CodeRabbit feedback on #517: previously a duplicate alias
would silently overwrite the earlier sub-request's entry in
referenceCache, causing later @bind.Column references to resolve
against the wrong sub-request.

* Require closing @ for batch reference tokens, delegate global vars to Env.parseContext

unify the reference grammar to match iDempiere's

* Use sessionCtx snapshot for MTable lookups instead of the disposable live context

* Add @bind$.jsonPathExpr@ batch reference support

Per Heng Sin's alternative on #516: standard JSONPath (RFC 9535)
against a prior sub-request's response, for nested/array access
@bind.Column@ can't do. Embeds json-path/json-smart/accessors-smart;
slf4j/asm are imported from iDempiere's own OSGi bundles instead.

* Extract BatchReferenceResolver to fix clean-code issues from this PR

* Drop flat @Table.Column@/@bind.Column@, standardize on bare JSONPath

* Only recognize #/$/+ prefixed context vars, not any @...@ literal

* Make batch responseAlias mandatory, drop tableName-based chaining, update docs

* Wrap batch alias/JSONPath references in @...@, make responseAlias optional

* Fix illegal multi-catch of InvalidPathException and its subclass PathNotFoundException
</comment><date>2026-07-31 14:55:59 +0200</date><id>427280be32686d308addb3bd78a3816c82707d89</id><msg>Batch reference resolution: bind$.jsonPathExpr + @#GlobalVar@ in v1/batch (#517)</msg><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/pom.xml</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/openapi/idempiere-rest.yml</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/postman/trekglobal-idempiere-rest.postman_collection.json</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/.classpath</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/META-INF/MANIFEST.MF</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/v1/resource/impl/BatchRequestResourseImpl.java</file></path><path><editType>edit</editType><file>com.trekglobal.idempiere.rest.api/src/com/trekglobal/idempiere/rest/api/v1/resource/BatchRequestResource.java</file></path></item></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><mavenArtifacts><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/126/mavenArtifacts/</url></mavenArtifacts></parent><pomArtifact><artifactId>com.trekglobal.idempiere.rest.api</artifactId><canonicalName>com.trekglobal.idempiere.rest.api-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>a5b813acbb38f45ca77e2c29eaf3e4a4</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></pomArtifact><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api/126/mavenArtifacts/</url></moduleRecord><moduleRecord><mainArtifact><artifactId>com.trekglobal.idempiere.rest.api.test</artifactId><canonicalName>com.trekglobal.idempiere.rest.api.test-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>6b92f8ef39daeb8f6844c4e5ed1a4ce2</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></mainArtifact><parent><action _class='hudson.maven.reporters.MavenArtifactRecord'><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api.test/126/mavenArtifacts/</url></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><artifact><displayPath>com.trekglobal.idempiere.rest.api.test-1.0.0-SNAPSHOT.pom</displayPath><fileName>com.trekglobal.idempiere.rest.api.test-1.0.0-SNAPSHOT.pom</fileName><relativePath>com.trekglobal.idempiere.extensions/com.trekglobal.idempiere.rest.api.test/1.0.0-SNAPSHOT/com.trekglobal.idempiere.rest.api.test-1.0.0-SNAPSHOT.pom</relativePath></artifact><building>false</building><displayName>#126</displayName><duration>0</duration><estimatedDuration>-1</estimatedDuration><fullDisplayName>idempiere-rest-master » com.trekglobal.idempiere.rest.api.test #126</fullDisplayName><id>126</id><inProgress>false</inProgress><keepLog>false</keepLog><number>126</number><queueId>-1</queueId><result>NOT_BUILT</result><timestamp>1785552248204</timestamp><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api.test/126/</url><builtOn></builtOn><changeSet _class='hudson.maven.FilteredChangeLogSet'></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/noreply</absoluteUrl><fullName>noreply</fullName></culprit><mavenArtifacts><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api.test/126/mavenArtifacts/</url></mavenArtifacts></parent><pomArtifact><artifactId>com.trekglobal.idempiere.rest.api.test</artifactId><canonicalName>com.trekglobal.idempiere.rest.api.test-1.0.0-SNAPSHOT.pom</canonicalName><fileName>pom.xml</fileName><groupId>com.trekglobal.idempiere.extensions</groupId><md5sum>6b92f8ef39daeb8f6844c4e5ed1a4ce2</md5sum><type>pom</type><version>1.0.0-SNAPSHOT</version></pomArtifact><url>https://jenkins.younex.de/job/idempiere-rest-master/com.trekglobal.idempiere.extensions$com.trekglobal.idempiere.rest.api.test/126/mavenArtifacts/</url></moduleRecord></mavenAggregatedArtifactRecord>