Store data in a variable/temp field on Exalate while sending information from SF to ADO

Originally asked by George Smith on 18 July 2022 (original question)


Hello,

I was wondering if there is a way to store data in a variable/temp field on Exalate while sending information from SF to ADO.

The data will not be displayed on the ADO side, it will just be stored in the temp field on Exalate and used to store some data required to trigger certain events while sending information back to SF side.Ex. When closing a case, I need to store the AccountID, AffiliateID, etc for a case, but I do cannot display these information on ADO side right now (assuming they do not have these fields available on the ADO side). I know this could be accomplished by having fields created on ADO side and store the data on it, but I was just wondering if this is feasible using some kind of temp fields on Exalate.

Cheers,

George


Answer by Serhiy Onyshchenko on 19 July 2022

Hello, George Smith ,

Thanks for asking.
In this particular case, I’d actually suggest avoiding to use extra storage and use the info already available in the Exalate sync metadata.

Outgoing sync:

def await = { f -> scala.concurrent.Await$.MODULE$.result(f, scala.concurrent.duration.FiniteDuration.apply(1, java.util.concurrent.TimeUnit.MINUTES)) }
def toList = { s -> scala.collection.JavaConverters.bufferAsJavaList(s) }
def toReplica = { IPersistentReplica r ->
    if (r == null) {
        return null
    }
    def logServ = new com.exalate.replication.services.utils.LoggingService()
    def hubObjConvServ = new com.exalate.hubobject.v1.HubObjectConversionService(null, logServ)
    def replicaHelper = new com.exalate.replication.services.hubobject.ReplicaHelper(hubObjConvServ)
    replicaHelper.toNonPersistentReplica(r)
}
List<ITwinTrace> tts = toList(await(syncHelper.twinTraceRepository.findTwinTracesByIssueId(entity.id, "issue", [:])))
tts = tts.findAll { tt -> tt.connection.name == "foo_to_bar" }
def tt = tts.find { tt -> tt.remoteReplica != null }
def remoteReplica = toReplica(tt?.remoteReplica)?.payload?.hubIssue


def ACCOUNT_ID = remoteReplica."AccountID"
def AFFILIATE_ID = remoteReplica."AffiliateID"

Let me know, how it goes.
Happy Exalating!


Comments:

Serhiy Onyshchenko commented on 04 August 2022

Should also work for any node but Jira on-prem