LSC 检查属性是否不为空

问题描述 投票:0回答:1

我正在使用

LSC
OpenLDAP
同步到 AD
DS
。我需要将两个属性从
OpenLDAP
同步到 AD DS 中的一个 (
proxyaddresses
),并在属性之前添加“smtp:”。仅当属性在
OpenLDAP
中不为空时才需要发送。

<dataset>   <name>proxyAddresses</name>             <!-- Add proxyAddresses from employeeType and employeeNumber and mail -->
        <policy>FORCE</policy>
        <forceValues>
    <string>js:(srcBean.getDatasetFirstValueById("employeeType") != null ? (("smtp:") + (srcBean.getDatasetFirstValueById("employeeType"))) : null) </string>
    </forceValues>
    </dataset>

以上不起作用。当OpenLDAP中的属性employeeType为空时,它仅同步“smtp:”。

如何将属性与前缀同步,但仅当属性不为空时?

从 OpenLDAP 更改属性很累。

java openldap lsc
1个回答
0
投票

解决方案是为所有三个属性制作 rjs 脚本:

<dataset>
        <name>proxyAddresses</name>
        <policy>FORCE</policy>
        <forceValues>
        <string>
        <![CDATA[rjs:
                var number = "smtp:" + srcBean.getDatasetValuesById("employeeNumber");
                var str = number.toString().toLowerCase();
                var emptystr = str.replace("[", "").replace("]", "");
                if (srcBean.getDatasetValuesById("employeeNumber") != null && !srcBean.getDatasetValuesById("employeeNumber").isEmpty()) {
                    emptystr;
               } else {
                    null;
        
                }
        ]]>     
        </string>       
        <string>
        <![CDATA[rjs:       
                var type = "smtp:" + srcBean.getDatasetValuesById("employeeType");
                var str2 = type.toString().toLowerCase();
                var emptystr2 = str2.replace("[", "").replace("]", "");
                if (srcBean.getDatasetValuesById("employeeType") != null && !srcBean.getDatasetValuesById("employeeType").isEmpty()) {
                    emptystr2;
               } else {
                    null;
                }
        ]]>
        </string>
        <string>
        <![CDATA[rjs:
                var umail = "SMTP:" + srcBean.getDatasetValuesById("mail");
                var str3 = umail.toString();
                var emptystr3 = str3.replace("[", "").replace("]", "");
                if (srcBean.getDatasetValuesById("mail") != null && !srcBean.getDatasetValuesById("mail").isEmpty()) {
                    emptystr3;
                } else {
                    null;
                }
        ]]>
        </string>
        </forceValues>
        </dataset>

© www.soinside.com 2019 - 2024. All rights reserved.