@@ -500,6 +500,8 @@ output application/json
500500payload map ( payload01 , indexOfPayload01 ) -> {
501501 EnrollmentId: payload01.Id default " " ,
502502 EnrollmentName: payload01.Name default " " ,
503+ StartDate: payload01.Start_Date__c default " " ,
504+ EndDate: payload01.End_Date__c default " " ,
503505 StudentId: payload01.Contact__c default " " ,
504506 StudentName: payload01.Contact__r.Name default " " ,
505507 FirstName: payload01.Contact__r.FirstName,
@@ -589,6 +591,53 @@ valuesOf(
589591 doc:name=" Log Stored URI Params"
590592 doc:id=" 89586974-34cf-4491-9ece-93f323634c60"
591593 message=" URI Param - coachId: #[vars.coachId], teamseasonId: #[vars.teamSeasonId], sessionId: #[vars.sessionId] - stored as vars" />
594+ <set-variable value=" #[attributes.queryParams.disableChecks]" doc:name=" Set disableChecks" doc:id=" 9fa37561-e2d6-48d9-91bc-722aeb1d16b0" variableName=" disableChecks" />
595+ <choice doc:name=" Choice" doc:id=" 765f0860-ca3b-4eb2-874b-3e3fa345bdbb" >
596+ <when expression=" #[vars.disableChecks]" >
597+ <logger level=" INFO" doc:name=" Logger" doc:id=" 8606ac75-207f-485a-9264-eea2e791e8af" message=" Checks are disabled..." />
598+ </when>
599+ <otherwise>
600+ <set-variable value=" #[payload]" doc:name=" Set Request Payload" doc:id=" 8cbe1849-f7cb-45eb-aca2-1347bc39d156" variableName=" RequestPayload" />
601+ <set-variable value=" #[%dw 2.0 var ids = payload map ((item) -> item.StudentId) output text/plain --- "(' " ++ (distinctBy(ids, (id) -> id) joinBy " ' , ' " ) ++ " ' )"]" doc:name=" Set Ids From Payload" doc:id=" bfa06495-d28e-4f7c-aea8-54c48edb3117" variableName=" IdsFromPayload" />
602+ <salesforce:query doc:name=" Get Session Details (Session Date)" doc:id=" 937a4b29-51ae-4f14-b24e-e3f960061f40" config-ref=" Salesforce_Config" >
603+ <salesforce:salesforce-query><![CDATA[SELECT Id, Session_Date__c FROM Session__c WHERE Id = ':sessionId']]></salesforce:salesforce-query>
604+ <salesforce:parameters><![CDATA[#[output application/java
605+ ---
606+ {
607+ sessionId : vars.sessionId
608+ }]]]></salesforce:parameters>
609+ </salesforce:query>
610+ <set-variable value=" #[payload[0].Session_Date__c]" doc:name=" Set Session Date" doc:id=" 0d2a6581-23f7-4a8f-bfa5-8582bf93dd17" variableName=" SessionDate" />
611+ <salesforce:query doc:name=" Retrieve Enrollment Records" doc:id=" c9a213fc-b4a7-445f-9a8b-f1f9116eb4ab" config-ref=" Salesforce_Config" >
612+ <salesforce:salesforce-query><![CDATA[SELECT Start_Date__c, End_Date__c, Team_Season__c, Contact__c
613+ FROM Enrollment__c
614+ WHERE Team_Season__c = ':teamSeasonId'
615+ AND Contact__c IN :contactIds
616+ AND Start_Date__c <= :sessionDate
617+ AND End_Date__c >= :sessionDate]]></salesforce:salesforce-query>
618+ <salesforce:parameters><![CDATA[#[output application/java
619+ ---
620+ {
621+ teamSeasonId : vars.teamSeasonId,
622+ contactIds: vars.IdsFromPayload,
623+ sessionDate: vars.SessionDate,
624+ }]]]></salesforce:parameters>
625+ </salesforce:query>
626+ <set-variable value=" #[payload]" doc:name=" Set Enrollments Payload" doc:id=" 023760b2-934d-434c-8b87-6e4ab33855c3" variableName=" EnrollmentsPayload" />
627+ <ee:transform doc:name=" Transform Message" doc:id=" 11c130be-a1f5-459f-b81c-ba3fecceb386" >
628+ <ee:message>
629+ <ee:set-payload><![CDATA[%dw 2.0
630+ output application/json
631+ import distinctBy from dw::core::Arrays
632+ var validContactIds = (vars.EnrollmentsPayload map (e) -> e.Contact__c) distinctBy (id) -> id
633+ ---
634+ vars.RequestPayload filter((item, index) -> (validContactIds contains (item.StudentId as String)))]]></ee:set-payload>
635+ </ee:message>
636+ </ee:transform>
637+ <set-variable value=" #[payload]" doc:name=" Set Filtered Payload" doc:id=" ee6a9883-a5be-4ec3-807f-8fabb9185059" variableName=" FilteredPayload" />
638+ </otherwise>
639+ </choice>
640+ <set-variable value=" #[attributes.queryParams.disableChecks default false]" doc:name=" Set disableChecks" doc:id=" fb8cd8c7-ea9c-4bf9-8be1-d08ae77d43fa" variableName=" disableChecks" />
592641 <salesforce:upsert
593642 doc:name=" Upsert"
594643 doc:id=" 96226f7b-9c73-4b6c-80d2-bce874e4cfb2"
@@ -612,24 +661,19 @@ payload map ( payload01 , indexOfPayload01 ) -> {
612661 <raise-error doc:name=" Raise error" doc:id=" 0186bc58-0909-4a09-a760-10b16852fbec" type=" CUSTOM:CUSTOM_ERROR" description=" Something went wrong while updating an attendance record." />
613662 </when>
614663 </choice>
615- <logger
616- level=" INFO"
617- doc:name=" Log Upsert"
618- doc:id=" 3e70143c-8c88-4080-95ad-7efe4bd82a1e"
619- message=" #[output application/json --- payload.items map ( payload01 , indexOfPayload01 ) -> { Message: payload01.payload default "" }]" />
620- <ee:transform
621- xsi:schemaLocation=" http://www.mulesoft.org/schema/mule/mule-apikit http://www.mulesoft.org/schema/mule/mule-apikit/current/mule-apikit.xsd http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd"
622- doc:id=" 02b48aab-bddb-4054-8872-ac1433da5ffd" >
664+ <ee:transform doc:name=" Transform Message1" doc:id=" 66f13bec-bf90-42e7-9407-0b93bbd3e132" xsi:schemaLocation=" http://www.mulesoft.org/schema/mule/mule-apikit http://www.mulesoft.org/schema/mule/mule-apikit/current/mule-apikit.xsd http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.mulesoft.org/schema/mule/ee/core http://www.mulesoft.org/schema/mule/ee/core/current/mule-ee.xsd" >
623665 <ee:message>
624666 <ee:set-payload><![CDATA[%dw 2.0
625667output application/json
626668---
627669{
628- Message: " Attendance taken" ,
629- Attendance_Taken: payload.successful
670+ Message: " Attendances taken" ,
671+ Attendance_Taken: payload.successful,
672+ FilteredPayload: vars.FilteredPayload default " Checks are disabled."
630673}]]></ee:set-payload>
631674 </ee:message>
632675 </ee:transform>
676+ <logger level=" INFO" doc:name=" Log Upsert" doc:id=" 3e70143c-8c88-4080-95ad-7efe4bd82a1e" message=" #[output application/json --- payload.items map ( payload01 , indexOfPayload01 ) -> { Message: payload01.payload default "" }]" />
633677 </flow>
634678 <flow
635679 name=" get:\coach\(coachId)\teamseasons\(teamSeasonId)\sessions\(sessionId)\attendances:salesforce-data-api-config" >
0 commit comments