<InsertStatement>
<rfx @action='INSERT'>
<table>RFX<table/>
<access>
<ID>rfx.InternalId</ID>
<TITLE>rfx.Title</TITLE>
<CREATED_AT>rfx.TimeCreated</CREATED_AT>
<UPDATED_AT>rfx.TimeUpdated</UPDATED_AT>
<EVENT_TYPE>rfx.EventType</EVENT_TYPE>
<EVENT_STATE>rfx.EventState</EVENT_STATE>
<STATUS>rfx.Status</STATUS>
</access>
</rfx>
</InsertStatement>
import com.sap.gateway.ip.core.customdev.util.Message
import java.util.HashMap
import groovy.json.JsonSlurper
import groovy.xml.*
def Message processData(Message message) {
def body = message.getBody()
def jsonSlurper = new JsonSlurper()
def apiResult = jsonSlurper.parse(body)
// Stores API response for later use
message.setProperty('ApiResponse', apiResult.toString())
// Create SQL statement
def writer = new StringWriter()
def sqlStatement = new MarkupBuilder(writer)
sqlStatement.root{
for (rfx in apiResult.Records) {
String eventType
switch(rfx.EventType) {
case '0':
eventType = 'FullProject'
break
case '1':
eventType = 'RFI'
break
case '2':
eventType = 'RFP'
break
case '3':
eventType = 'RFQ'
break
case '4':
eventType = 'Auction'
break
case '5':
eventType = 'Survey'
break
case '6':
eventType = 'ForwardAuction'
break
case '7':
eventType = 'SourcingRequest'
break
}
sqlStatement.InsertStatement{
sqlStatement.rfx(action: 'INSERT') {
sqlStatement.table('RFX')
sqlStatement.access{
sqlStatement.ID(rfx.InternalId)
sqlStatement.TITLE(rfx.Title)
sqlStatement.CREATED_AT(rfx.TimeCreated)
sqlStatement.UPDATED_AT(rfx.TimeUpdated)
sqlStatement.EVENT_TYPE(eventType)
sqlStatement.EVENT_STATE(rfx.EventState)
sqlStatement.STATUS(rfx.Status)
}
}
}
}
}
message.setBody(writer.toString())
return message
}
SELECT * FROM "ARIBAXM_HDI_DB_1"."RFX_INVITED_USERS"
import com.sap.gateway.ip.core.customdev.util.Message
import java.util.HashMap
import groovy.json.JsonBuilder
import groovy.xml.*
def Message processData(Message message) {
def rfxOrganizationsResult = new XmlSlurper().parseText(message.getBody(java.lang.String))
def rfxUsersResult = new XmlSlurper().parseText(message.getProperty('rfx_invited_users'))
// Create payload to Qualtrics
def writer = new StringWriter()
def qualtrics = new MarkupBuilder(writer)
qualtrics.root {
for (user in rfxUsersResult.select_response.row) {
// Only post awarded users
if (user.AWARDED == 1) {
qualtrics.contact {
id(user.ID)
unique_name(user.UNIQUE_NAME)
payload(getPayload(user, rfxOrganizationsResult.select_response.row))
}
}
}
}
message.setBody(writer.toString())
return message
}
// Set information of the User's Organization
def getPayload(user, organizations) {
def org = organizations.find { it.CONTACT_ID == user.UNIQUE_NAME }
def payload = new JsonBuilder()
String phone = 'N/A'
if (user.PHONE && !user.PHONE.isEmpty() && user.PHONE != '') phone = user.PHONE
payload ([
firstName: "$user.FIRST_NAME",
lastName: "$user.LAST_NAME",
email: "$user.EMAIL",
phone: "$phone",
extRef: "$user.ID",
language: "en",
unsubscribed: false,
embeddedData: [
OrganizationID: "$org.ORG_ID",
Name: "$org.NAME",
Address: "$org.ADDRESS, $org.CITY, $org.STATE. $org.POSTAL_CODE. $org.COUNTRY"
]
])
return payload.toString()
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
16 | |
5 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |