使用mulesoft在系统之间集成供应商信息更改。供应商可以拥有一个到多个站点。某个特定系统必须满足某些供应商标准以及某些供应商站点标准才能关注更新。我有一个转换消息,设置一个标记为' True'或者“假”'基于对标准的评估,该标准反过来告诉我们是否将数据发送到特定系统。这是我设置标志的数据编织...
%dw 1.0
%output application/java
//Function to determine if site is future site
%function isFutureSite(siteCode) 'Y' when siteCode contains 'FUTURE' otherwise 'N'
//Function to determine if vendor is a dummy vendor
%function isDummyVendor(vendorName) 'Y' when vendorName contains 'Dummy' otherwise 'N'
---
//Set processFlag to True or False to determine whether or not to send updates to WMS based on vendor and site attributes
using (crit=payload.MMAP_SUPPLIER_DETAILS_OBJ_TYPE) {
(crit.SITES filter ($.ORG_ID == '116' and $.PURCHASING_SITE_FLAG == 'Y' and $.INACTIVE_DATE == ''
and isFutureSite($.VENDOR_SITE_CODE) == 'N' and $.VENDOR_SITE_CODE[0 to 2] == 'P&A'
) map {
Process: 'True'}
when crit.SUPPLIER.END_DATE_ACTIVE == ''
and isDummyVendor(crit.SUPPLIER.VENDOR_NAME) == 'N'
and (crit.SUPPLIER.VENDOR_TYPE_LOOKUP_CODE == 'PRODUCTION' or crit.SUPPLIER.VENDOR_TYPE_LOOKUP_CODE == 'COMMON')
otherwise Process: 'False')}
首先,我按照crit.SITES过滤器中指定的5个标准过滤供应商网站。对于满足所有这5个标准的供应商,总会有0或1个站点。然后我过滤供应商标准(基于供应商级别数据的3个条件)。 一切都很好...... 1.)满足所有标准(3个供应商条件为真,并且供应商有一个满足所有5个站点标准的站点。然后我获得过程标志{Process = True}或2的真实值。)供应商的站点满足所有5个站点标准,但不满足所有3个供应商条件。然后我得到Process标志的错误值{Process = False}。
我遇到的问题是当供应商有0个站点符合所有5个站点标准时(crit.SITES过滤器不返回任何站点)。然后,我没有得到任何标志{}。
在这种情况下如何将值(False)设置为标志?
非常感谢任何帮助。