Files
tenant1/failed_payments_retry/main.workflow
2025-08-29 08:56:42 +00:00

1 line
15 KiB
XML

{"version":"v1alpha","kind":"VisualBuilder","metadata":{"name":"failed_payments_retry","description":"Failed payments retry workflow.","runtime":"spark"},"spec":{"ui":{"edges":[{"style":{"stroke":"var(--color-primary-lighter)","strokeWidth":1},"source":"data-reader__0","target":"filter__1","id":"xy-edge__data-reader__0-filter__1"},{"style":{"stroke":"var(--color-primary-lighter)","strokeWidth":1},"source":"filter__1","target":"rest-api-invoke__2","id":"xy-edge__filter__1-rest-api-invoke__2"},{"style":{"stroke":"var(--color-primary-lighter)","strokeWidth":1},"source":"rest-api-invoke__2","target":"data-mapper__3","id":"xy-edge__rest-api-invoke__2-data-mapper__3"},{"style":{"stroke":"var(--color-primary-lighter)","strokeWidth":1},"source":"rest-api-invoke__2","target":"filter__4","id":"xy-edge__rest-api-invoke__2-filter__4"},{"style":{"stroke":"var(--color-primary-lighter)","strokeWidth":1},"source":"filter__4","target":"data-mapper__7","id":"xy-edge__filter__4-data-mapper__7"},{"style":{"stroke":"var(--color-primary-lighter)","strokeWidth":1},"source":"data-mapper__3","target":"data-writer__5","id":"xy-edge__data-mapper__3-data-writer__5"},{"style":{"stroke":"var(--color-primary-lighter)","strokeWidth":1},"source":"data-mapper__7","target":"data-writer__6","id":"xy-edge__data-mapper__7-data-writer__6"}],"nodes":[{"id":"data-reader__0","type":"workflowNode","position":{"x":562,"y":64},"data":{"nodeType":"data-reader","id":"data-reader__0"},"measured":{"width":320,"height":110},"selected":false,"dragging":false},{"id":"filter__1","type":"workflowNode","position":{"x":992.5,"y":63.5},"data":{"nodeType":"filter","id":"filter__1"},"measured":{"width":320,"height":110},"selected":false,"dragging":false},{"id":"rest-api-invoke__2","type":"workflowNode","position":{"x":1398.5,"y":59.5},"data":{"nodeType":"rest-api-invoke","id":"rest-api-invoke__2"},"measured":{"width":320,"height":110},"selected":false,"dragging":false},{"id":"data-mapper__3","type":"workflowNode","position":{"x":1938.5,"y":-206.5},"data":{"nodeType":"data-mapper","id":"data-mapper__3"},"measured":{"width":320,"height":110},"selected":false,"dragging":false},{"id":"filter__4","type":"workflowNode","position":{"x":1928.5,"y":307.5},"data":{"nodeType":"filter","id":"filter__4"},"measured":{"width":320,"height":110},"selected":false,"dragging":false},{"id":"data-writer__5","type":"workflowNode","position":{"x":2548.5,"y":-227.0003498950315},"data":{"nodeType":"data-writer","id":"data-writer__5"},"measured":{"width":320,"height":142},"selected":false,"dragging":false},{"id":"data-writer__6","type":"workflowNode","position":{"x":2735.500699790063,"y":291.2484254723583},"data":{"nodeType":"data-writer","id":"data-writer__6"},"measured":{"width":320,"height":142},"selected":true,"dragging":false},{"id":"data-mapper__7","type":"workflowNode","position":{"x":2320.501399580126,"y":293.9989503149055},"data":{"nodeType":"data-mapper","id":"data-mapper__7"},"measured":{"width":320,"height":142},"selected":false,"dragging":false}],"nodesData":{"data-reader__0":{"name":"failed_payments_reader","type":"SparkIcebergReader","table_name":"failedpayments","iceberg_catalog":"dremio","region":"us-west-1","credentials":{"accessKey":"S3_ACCESS_KEY","secretKey":"S3_SECRET_KEY"},"options":{},"typeLabel":"Spark","isDefault":false},"filter__1":{"name":"failed_payments_filter","type":"Filter","datasource":"failed_payments_reader","condition":"retry_attempt_count < 3 AND gateway = \\'CCS\\' AND (retry_status = \\'new\\' OR retry_status = \\'failed\\') and payment_id = \\'pi_3RvDQqP0JqbrujP90uuhk13h\\'","isDefault":false},"rest-api-invoke__2":{"name":"payment_api","type":"RESTInvoke","datasource":"failed_payments_filter","url":"https://cod.uat.arconecloud.com/fw-notification/outbound-message-config/publish","method":"POST","headers":{"Content-Type":{"value":"application/json","secret":null},"api-key":{"value":null,"secret":"API_KEY"}},"bodyTemplate":"{\n \"msgData\": {\n \"canDistribute\": true,\n \"payment\": [\n {\n \"accountId3\": \"{{account_id}}\",\n \"currency2\": \"{{currency}}\",\n \"paymentAmount2\": \"{{amount}}\"\n }\n ],\n \"paymentDate\": \"{{payment_date[:10]}}\",\n \"paymentTender\": [\n {\n \"currency3\": \"{{currency}}\",\n \"name\": \"NAME\",\n \"payorAccountId2\": \"{{account_id}}\",\n \"tenderAmount\": \"{{amount}}\",\n \"tenderType2\": \"CASH\"\n }\n ],\n \"payorAccountId\": \"{{account_id}}\",\n \"shouldAllPaymentsFreeze\": true,\n \"tndrSrceCd\": \"CASH-01\",\n \"user\": \"\"\n },\n \"outMsgConfigCode\": \"EXP_CREATE_PAYMENT\"\n}","isDefault":false},"data-mapper__3":{"name":"failed_payments_update_mapper","type":"DataMapping","fromDataReader":"payment_api","includeExistingColumns":false,"toSchema":[{"fieldName":"id","valueExpression":"id"},{"fieldName":"retry_attempt_count","valueExpression":"retry_attempt_count + 1"},{"fieldName":"batch_processed","valueExpression":"TRUE"},{"fieldName":"batch_job_id","valueExpression":"{job_id}"},{"fieldName":"retry_status","valueExpression":"CASE WHEN response_body.success = \\'true\\' THEN \\'success\\' WHEN retry_attempt_count >= 3 THEN \\'permanently_failed\\' ELSE \\'failed\\' END"},{"fieldName":"account_id","valueExpression":"account_id"},{"fieldName":"failure_reason","valueExpression":"failure_reason"},{"fieldName":"failure_timestamp","valueExpression":"failure_timestamp"},{"fieldName":"amount","valueExpression":"CAST(amount AS DECIMAL(10,2))"},{"fieldName":"created_at","valueExpression":"created_at"},{"fieldName":"payment_id","valueExpression":"payment_id"},{"fieldName":"source_of_failure","valueExpression":"source_of_failure"},{"fieldName":"currency","valueExpression":"currency"},{"fieldName":"gateway","valueExpression":"gateway"},{"fieldName":"payment_method","valueExpression":"payment_method"},{"fieldName":"payment_date","valueExpression":"payment_date"},{"fieldName":"last_retry_timestamp","valueExpression":"date_format(current_timestamp(), \\\"yyyy-MM-dd\\'T\\'HH:mm:ss.SSS\\\")"},{"fieldName":"updated_at","valueExpression":"date_format(current_timestamp(), \\\"yyyy-MM-dd\\'T\\'HH:mm:ss.SSS\\\")"}],"additionalData":{"isGlossaryAssisted":false,"selectedSourceGlossary":"","selectedTargetGlossary":"","manualMappings":[{"id":"mapping-1756456867713","newFieldName":"id","mappingType":"sourceColumn","value":"id"},{"id":"mapping-1756456889320","newFieldName":"retry_attempt_count","mappingType":"expression","value":"retry_attempt_count + 1"},{"id":"mapping-1756456904719","newFieldName":"batch_processed","mappingType":"expression","value":"TRUE"},{"id":"mapping-1756456928950","newFieldName":"batch_job_id","mappingType":"expression","value":"{job_id}"},{"id":"mapping-1756456989777","newFieldName":"retry_status","mappingType":"expression","value":"CASE WHEN response_body.success = 'true' THEN 'success' WHEN retry_attempt_count >= 3 THEN 'permanently_failed' ELSE 'failed' END"},{"id":"mapping-1756457003714","newFieldName":"account_id","mappingType":"sourceColumn","value":"account_id"},{"id":"mapping-1756457017554","newFieldName":"failure_reason","mappingType":"sourceColumn","value":"failure_reason"},{"id":"mapping-1756457036311","newFieldName":"failure_timestamp","mappingType":"sourceColumn","value":"failure_timestamp"},{"id":"mapping-1756457056991","newFieldName":"amount","mappingType":"expression","value":"CAST(amount AS DECIMAL(10,2))"},{"id":"mapping-1756457071099","newFieldName":"created_at","mappingType":"sourceColumn","value":"created_at"},{"id":"mapping-1756457084487","newFieldName":"payment_id","mappingType":"sourceColumn","value":"payment_id"},{"id":"mapping-1756457099675","newFieldName":"source_of_failure","mappingType":"sourceColumn","value":"source_of_failure"},{"id":"mapping-1756457113076","newFieldName":"currency","mappingType":"sourceColumn","value":"currency"},{"id":"mapping-1756457122532","newFieldName":"gateway","mappingType":"sourceColumn","value":"gateway"},{"id":"mapping-1756457133792","newFieldName":"payment_method","mappingType":"sourceColumn","value":"payment_method"},{"id":"mapping-1756457145773","newFieldName":"payment_date","mappingType":"sourceColumn","value":"payment_date"},{"id":"mapping-1756457758929","newFieldName":"last_retry_timestamp","mappingType":"expression","value":"date_format(current_timestamp(), \\\"yyyy-MM-dd'T'HH:mm:ss.SSS\\\")"},{"id":"mapping-1756457763548","newFieldName":"updated_at","mappingType":"expression","value":"date_format(current_timestamp(), \\\"yyyy-MM-dd'T'HH:mm:ss.SSS\\\")"}],"confirmedMapping":[],"mappingBatchKeysAfterConfirm":[],"after":"","totalSourceTerms":0},"isDefault":false},"filter__4":{"name":"success_payment_filter","type":"Filter","datasource":"payment_api","condition":"response_body.success=\\'true\\'","isDefault":false}}},"blocks":[{"name":"failed_payments_reader","type":"SparkIcebergReader","options":{},"table_name":"failedpayments","iceberg_catalog":"dremio","region":"us-west-1","credentials":{"accessKey":"S3_ACCESS_KEY","secretKey":"S3_SECRET_KEY"},"typeLabel":"Spark","isDefault":false},{"name":"failed_payments_filter","type":"Filter","options":{},"datasource":"failed_payments_reader","condition":"retry_attempt_count < 3 AND gateway = \\'CCS\\' AND (retry_status = \\'new\\' OR retry_status = \\'failed\\') and payment_id = \\'pi_3RvDQqP0JqbrujP90uuhk13h\\'","isDefault":false},{"name":"payment_api","type":"RESTInvoke","options":{},"datasource":"failed_payments_filter","url":"https://cod.uat.arconecloud.com/fw-notification/outbound-message-config/publish","method":"POST","headers":{"Content-Type":{"value":"application/json","secret":null},"api-key":{"value":null,"secret":"API_KEY"}},"bodyTemplate":"{\n \"msgData\": {\n \"canDistribute\": true,\n \"payment\": [\n {\n \"accountId3\": \"{{account_id}}\",\n \"currency2\": \"{{currency}}\",\n \"paymentAmount2\": \"{{amount}}\"\n }\n ],\n \"paymentDate\": \"{{payment_date[:10]}}\",\n \"paymentTender\": [\n {\n \"currency3\": \"{{currency}}\",\n \"name\": \"NAME\",\n \"payorAccountId2\": \"{{account_id}}\",\n \"tenderAmount\": \"{{amount}}\",\n \"tenderType2\": \"CASH\"\n }\n ],\n \"payorAccountId\": \"{{account_id}}\",\n \"shouldAllPaymentsFreeze\": true,\n \"tndrSrceCd\": \"CASH-01\",\n \"user\": \"\"\n },\n \"outMsgConfigCode\": \"EXP_CREATE_PAYMENT\"\n}","isDefault":false},{"name":"failed_payments_update_mapper","type":"DataMapping","options":{},"fromDataReader":"payment_api","includeExistingColumns":false,"toSchema":[{"fieldName":"id","valueExpression":"id"},{"fieldName":"retry_attempt_count","valueExpression":"retry_attempt_count + 1"},{"fieldName":"batch_processed","valueExpression":"TRUE"},{"fieldName":"batch_job_id","valueExpression":"{job_id}"},{"fieldName":"retry_status","valueExpression":"CASE WHEN response_body.success = \\'true\\' THEN \\'success\\' WHEN retry_attempt_count >= 3 THEN \\'permanently_failed\\' ELSE \\'failed\\' END"},{"fieldName":"account_id","valueExpression":"account_id"},{"fieldName":"failure_reason","valueExpression":"failure_reason"},{"fieldName":"failure_timestamp","valueExpression":"failure_timestamp"},{"fieldName":"amount","valueExpression":"CAST(amount AS DECIMAL(10,2))"},{"fieldName":"created_at","valueExpression":"created_at"},{"fieldName":"payment_id","valueExpression":"payment_id"},{"fieldName":"source_of_failure","valueExpression":"source_of_failure"},{"fieldName":"currency","valueExpression":"currency"},{"fieldName":"gateway","valueExpression":"gateway"},{"fieldName":"payment_method","valueExpression":"payment_method"},{"fieldName":"payment_date","valueExpression":"payment_date"},{"fieldName":"last_retry_timestamp","valueExpression":"date_format(current_timestamp(), \\\"yyyy-MM-dd\\'T\\'HH:mm:ss.SSS\\\")"},{"fieldName":"updated_at","valueExpression":"date_format(current_timestamp(), \\\"yyyy-MM-dd\\'T\\'HH:mm:ss.SSS\\\")"}],"additionalData":{"isGlossaryAssisted":false,"selectedSourceGlossary":"","selectedTargetGlossary":"","manualMappings":[{"id":"mapping-1756456867713","newFieldName":"id","mappingType":"sourceColumn","value":"id"},{"id":"mapping-1756456889320","newFieldName":"retry_attempt_count","mappingType":"expression","value":"retry_attempt_count + 1"},{"id":"mapping-1756456904719","newFieldName":"batch_processed","mappingType":"expression","value":"TRUE"},{"id":"mapping-1756456928950","newFieldName":"batch_job_id","mappingType":"expression","value":"{job_id}"},{"id":"mapping-1756456989777","newFieldName":"retry_status","mappingType":"expression","value":"CASE WHEN response_body.success = 'true' THEN 'success' WHEN retry_attempt_count >= 3 THEN 'permanently_failed' ELSE 'failed' END"},{"id":"mapping-1756457003714","newFieldName":"account_id","mappingType":"sourceColumn","value":"account_id"},{"id":"mapping-1756457017554","newFieldName":"failure_reason","mappingType":"sourceColumn","value":"failure_reason"},{"id":"mapping-1756457036311","newFieldName":"failure_timestamp","mappingType":"sourceColumn","value":"failure_timestamp"},{"id":"mapping-1756457056991","newFieldName":"amount","mappingType":"expression","value":"CAST(amount AS DECIMAL(10,2))"},{"id":"mapping-1756457071099","newFieldName":"created_at","mappingType":"sourceColumn","value":"created_at"},{"id":"mapping-1756457084487","newFieldName":"payment_id","mappingType":"sourceColumn","value":"payment_id"},{"id":"mapping-1756457099675","newFieldName":"source_of_failure","mappingType":"sourceColumn","value":"source_of_failure"},{"id":"mapping-1756457113076","newFieldName":"currency","mappingType":"sourceColumn","value":"currency"},{"id":"mapping-1756457122532","newFieldName":"gateway","mappingType":"sourceColumn","value":"gateway"},{"id":"mapping-1756457133792","newFieldName":"payment_method","mappingType":"sourceColumn","value":"payment_method"},{"id":"mapping-1756457145773","newFieldName":"payment_date","mappingType":"sourceColumn","value":"payment_date"},{"id":"mapping-1756457758929","newFieldName":"last_retry_timestamp","mappingType":"expression","value":"date_format(current_timestamp(), \\\"yyyy-MM-dd'T'HH:mm:ss.SSS\\\")"},{"id":"mapping-1756457763548","newFieldName":"updated_at","mappingType":"expression","value":"date_format(current_timestamp(), \\\"yyyy-MM-dd'T'HH:mm:ss.SSS\\\")"}],"confirmedMapping":[],"mappingBatchKeysAfterConfirm":[],"after":"","totalSourceTerms":0},"isDefault":false},{"name":"success_payment_filter","type":"Filter","options":{},"datasource":"payment_api","condition":"response_body.success=\\'true\\'","isDefault":false}]}}