
    <NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/nikuxog_contentPack.xsd">
      <Header action="write" externalSource="NIKU" objectType="contentPack" version="16.3.2.1608"/>
      <contentPack update="true">
        <Processes>
          <Process allowOneRunningInstance="true" code="ma_maj_user_bis" createdBy="H64025" endStep="Finish" source="customer" startEvent="createupdate" startOption="AUTO_START" startStep="Start">
            <nls languageCode="ca" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="cs" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="da" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="de" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="en" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="es" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="fi" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="fr" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="hu" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="it" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="ja" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="ko" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="nl" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="no" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="pl" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="pt" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="ru" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="sv" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="tr" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="zh" name="Import en masse - MAJ user post création bis"/>
            <nls languageCode="zh_TW" name="Import en masse - MAJ user post création bis"/>
            <CreateStartCondition><![CDATA[resource.ma_imp_masse ==lookup("MA_IMPORT_MASSE", "01")]]></CreateStartCondition>
            <UpdateStartCondition><![CDATA[resource.ma_imp_masse ==lookup("MA_IMPORT_MASSE", "01")]]></UpdateStartCondition>
            <Security>
              <UserSecurity rightCode="PROCESS-DEF-INST-INITIATE" userName="H64025"/>
              <UserSecurity rightCode="PROCESS-DEF-INST-WRITE" userName="H64025"/>
            </Security>
            <Objects>
              <Object manualStart="true" name="thisResource" objectType="resource" partitionCode="NIKU.ROOT" partitionModeCode="PARTITION_ONLY" type="BPM_POT_PRIMARY"/>
            </Objects>
            <Steps>
              <Step id="Start" isMileStone="false" sequenceNo="1">
                <nls languageCode="ca" name="Inici"/>
                <nls languageCode="cs" name="Start"/>
                <nls languageCode="da" name="Start"/>
                <nls languageCode="de" name="Start"/>
                <nls languageCode="en" name="Start"/>
                <nls languageCode="es" name="Start"/>
                <nls languageCode="fi" name="Start"/>
                <nls languageCode="fr" name="Start"/>
                <nls languageCode="hu" name="Start"/>
                <nls languageCode="it" name="Start"/>
                <nls languageCode="ja" name="Start"/>
                <nls languageCode="ko" name="Start"/>
                <nls languageCode="nl" name="Start"/>
                <nls languageCode="no" name="Start"/>
                <nls languageCode="pl" name="Start"/>
                <nls languageCode="pt" name="Start"/>
                <nls languageCode="ru" name="Start"/>
                <nls languageCode="sv" name="Start"/>
                <nls languageCode="tr" name="Start"/>
                <nls languageCode="zh" name="Start"/>
                <nls languageCode="zh_TW" name="Start"/>
                <Notifications notifyOwner="false">
                  <NotifyWhen stepCompleted="false" stepInError="false" stepStarted="false"/>
                  <Assignees/>
                </Notifications>
                <Operations/>
                <TransitionRestrictions>
                  <TransitionRestriction>
                    <Join type="BPM_JT_NONE">
                      <Condition sequencNo="1" type="BPM_SCT_PRECONDITION"/>
                    </Join>
                  </TransitionRestriction>
                  <TransitionRestriction>
                    <Split type="BPM_ST_SEQUENCE">
                      <Condition sequencNo="1" type="BPM_SCT_POSTCONDITION">
                        <Transitions>
                          <Transition to="A01"/>
                        </Transitions>
                      </Condition>
                    </Split>
                  </TransitionRestriction>
                </TransitionRestrictions>
              </Step>
              <Step id="Finish" isMileStone="false" sequenceNo="2">
                <nls languageCode="ca" name="Final"/>
                <nls languageCode="cs" name="Finish"/>
                <nls languageCode="da" name="Finish"/>
                <nls languageCode="de" name="Finish"/>
                <nls languageCode="en" name="Finish"/>
                <nls languageCode="es" name="Finish"/>
                <nls languageCode="fi" name="Finish"/>
                <nls languageCode="fr" name="Finish"/>
                <nls languageCode="hu" name="Finish"/>
                <nls languageCode="it" name="Finish"/>
                <nls languageCode="ja" name="Finish"/>
                <nls languageCode="ko" name="Finish"/>
                <nls languageCode="nl" name="Finish"/>
                <nls languageCode="no" name="Finish"/>
                <nls languageCode="pl" name="Finish"/>
                <nls languageCode="pt" name="Finish"/>
                <nls languageCode="ru" name="Finish"/>
                <nls languageCode="sv" name="Finish"/>
                <nls languageCode="tr" name="Finish"/>
                <nls languageCode="zh" name="Finish"/>
                <nls languageCode="zh_TW" name="Finish"/>
                <Notifications notifyOwner="false">
                  <NotifyWhen stepCompleted="false" stepInError="false" stepStarted="false"/>
                  <Assignees/>
                </Notifications>
                <Operations/>
                <TransitionRestrictions>
                  <TransitionRestriction>
                    <Join type="BPM_JT_NONE">
                      <Condition sequencNo="1" type="BPM_SCT_PRECONDITION"/>
                    </Join>
                  </TransitionRestriction>
                  <TransitionRestriction>
                    <Split type="BPM_ST_SEQUENCE">
                      <Condition sequencNo="1" type="BPM_SCT_POSTCONDITION">
                        <Transitions/>
                      </Condition>
                    </Split>
                  </TransitionRestriction>
                </TransitionRestrictions>
              </Step>
              <Step id="A01" isMileStone="false" sequenceNo="3">
                <nls languageCode="ca" name="A01"/>
                <nls languageCode="cs" name="A01"/>
                <nls languageCode="da" name="A01"/>
                <nls languageCode="de" name="A01"/>
                <nls languageCode="en" name="A01"/>
                <nls languageCode="es" name="A01"/>
                <nls languageCode="fi" name="A01"/>
                <nls languageCode="fr" name="A01"/>
                <nls languageCode="hu" name="A01"/>
                <nls languageCode="it" name="A01"/>
                <nls languageCode="ja" name="A01"/>
                <nls languageCode="ko" name="A01"/>
                <nls languageCode="nl" name="A01"/>
                <nls languageCode="no" name="A01"/>
                <nls languageCode="pl" name="A01"/>
                <nls languageCode="pt" name="A01"/>
                <nls languageCode="ru" name="A01"/>
                <nls languageCode="sv" name="A01"/>
                <nls languageCode="tr" name="A01"/>
                <nls languageCode="zh" name="A01"/>
                <nls languageCode="zh_TW" name="A01"/>
                <Notifications notifyOwner="false">
                  <NotifyWhen stepCompleted="false" stepInError="false" stepStarted="false"/>
                  <Assignees/>
                </Notifications>
                <Operations>
                  <Action code="xtd_set_imp" objectMethod="ma_imp_masse" objectName="thisResource" type="BPM_SAT_SYSTEM">
                    <nls languageCode="ca" name="Set Import en masse"/>
                    <nls languageCode="cs" name="Set Import en masse"/>
                    <nls languageCode="da" name="Set Import en masse"/>
                    <nls languageCode="de" name="Set Import en masse"/>
                    <nls languageCode="en" name="Set Import en masse"/>
                    <nls languageCode="es" name="Set Import en masse"/>
                    <nls languageCode="fi" name="Set Import en masse"/>
                    <nls languageCode="fr" name="Set Import en masse"/>
                    <nls languageCode="hu" name="Set Import en masse"/>
                    <nls languageCode="it" name="Set Import en masse"/>
                    <nls languageCode="ja" name="Set Import en masse"/>
                    <nls languageCode="ko" name="Set Import en masse"/>
                    <nls languageCode="nl" name="Set Import en masse"/>
                    <nls languageCode="no" name="Set Import en masse"/>
                    <nls languageCode="pl" name="Set Import en masse"/>
                    <nls languageCode="pt" name="Set Import en masse"/>
                    <nls languageCode="ru" name="Set Import en masse"/>
                    <nls languageCode="sv" name="Set Import en masse"/>
                    <nls languageCode="tr" name="Set Import en masse"/>
                    <nls languageCode="zh" name="Set Import en masse"/>
                    <nls languageCode="zh_TW" name="Set Import en masse"/>
                    <ActionParams>
                      <Param name="value"/>
                    </ActionParams>
                    <Notifications notifyOwner="false">
                      <NotifyWhen stepActionInError="false" stepActionPerformed="false"/>
                      <Assignees/>
                    </Notifications>
                  </Action>
                  <Action code="getSessionID" synchronized="true" type="BPM_SAT_CUSTOM">
                    <nls languageCode="ca" name="Get session ID"/>
                    <nls languageCode="cs" name="Get session ID"/>
                    <nls languageCode="da" name="Get session ID"/>
                    <nls languageCode="de" name="Get session ID"/>
                    <nls languageCode="en" name="Get session ID"/>
                    <nls languageCode="es" name="Get session ID"/>
                    <nls languageCode="fi" name="Get session ID"/>
                    <nls languageCode="fr" name="Get session ID"/>
                    <nls languageCode="hu" name="Get session ID"/>
                    <nls languageCode="it" name="Get session ID"/>
                    <nls languageCode="ja" name="Get session ID"/>
                    <nls languageCode="ko" name="Get session ID"/>
                    <nls languageCode="nl" name="Get session ID"/>
                    <nls languageCode="no" name="Get session ID"/>
                    <nls languageCode="pl" name="Get session ID"/>
                    <nls languageCode="pt" name="Get session ID"/>
                    <nls languageCode="ru" name="Get session ID"/>
                    <nls languageCode="sv" name="Get session ID"/>
                    <nls languageCode="tr" name="Get session ID"/>
                    <nls languageCode="zh" name="Get session ID"/>
                    <nls languageCode="zh_TW" name="Get session ID"/>
                    <customScript languageCode="gel">
                      <scriptText>
                        <gel:script xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                          <core:set xmlns:core="jelly:core" value="0" var="errorFlag"/>
                          <gel:setDataSource dbId="niku"/>
                          <core:catch xmlns:core="jelly:core" var="errSQL">
                            <sql:query xmlns:sql="jelly:sql" var="rstUser">
												SELECT sr.unique_name,
												csu.user_name,
												sr.user_id,
												sr.email,
												sr.first_name,
												sr.full_name
												FROM bpm_run_processes  brp
												INNER JOIN srm_resources  sr ON brp.initiated_by = sr.USER_ID
												INNER JOIN cmn_sec_users csu ON sr.user_id       = csu.id
												WHERE brp.id = ${gel_processInstanceId}
											</sql:query>
                          </core:catch>
                          <core:catch xmlns:core="jelly:core" var="errSQL2">
                            <sql:query xmlns:sql="jelly:sql" var="rstParam">
												SELECT DECODE(SUBSTR(prm.x_string,-1),'/',SUBSTR(prm.x_string,1,LENGTH(prm.x_string)-1),prm.x_string) AS clarity_url,
												prm.x_string || 'niku/xog' AS xog_url
												FROM odf_ca_x_parameter   prm
												INNER JOIN odf_ca_x_config cfg ON cfg.id = prm.odf_parent_id
												WHERE prm.code = 'url'
												AND cfg.code = 'CONTROL'
											</sql:query>
                          </core:catch>
                          <core:choose xmlns:core="jelly:core">
                            <core:when test="${errSQL != null or errSQL2 != null}">
                              <core:if test="${errSQL != null}">
                                <gel:log level="ERROR">Error getting user: ${errSQL}</gel:log>
                              </core:if>
                              <core:if test="${errSQL2 != null}">
                                <gel:log level="ERROR">Error getting parameter: ${errSQL2}</gel:log>
                              </core:if>
                            </core:when>
                            <core:otherwise>
                              <core:set value="${rstUser.rows[0].get('UNIQUE_NAME')}" var="UNIQUE_NAME"/>
                              <core:set value="admin" var="USER_NAME"/>
                              <core:set value="${rstUser.rows[0].get('FIRST_NAME')}" var="FIRST_NAME"/>
                              <core:set value="${rstUser.rows[0].get('EMAIL')}" var="EMAIL"/>
                              <core:set value="${rstUser.rows[0].get('FULL_NAME')}" var="FULL_NAME"/>
                              <core:set value="${rstParam.rows[0].get('CLARITY_URL')}" var="CLARITY_URL"/>
                              <core:set value="${rstParam.rows[0].get('xog_url')}" var="CLARITY_XOG_URL"/>
                              <gel:log>USER_NAME: ${USER_NAME}</gel:log>
                              <core:new className="com.niku.union.security.DefaultSecurityIdentifier" var="secId"/>
                              <core:invokeStatic className="com.niku.union.security.UserSessionControllerFactory" method="getInstance" var="userSessionCtrl"/>
                              <core:invokeStatic className="com.niku.union.config.ConfigurationManager" method="getInstance" var="v_config"/>
                              <core:set value="${v_config.getProperties().getWebServer().getSchedulerUrl()}" var="hostClarity"/>
                              <gel:log>clarityUrl: ${hostClarity}</gel:log>
                              <core:set value="${userSessionCtrl.init(USER_NAME, secId)}" var="secId"/>
                              <core:set value="${secId.getUserName()}" var="XOGUsername"/>
                              <core:set value="${secId.getPWD()}" var="XOGPassword"/>
                              <core:set value="${secId.getSessionId()}" var="sessionID"/>
                              <gel:log>SESSION_ID: ${sessionID}</gel:log>
                              <gel:log>${FULL_NAME} (${UNIQUE_NAME}) - ${EMAIL}</gel:log>
                              <gel:persist scope="INSTANCE" value="${sessionID}" var="INST_SESSION_ID"/>
                              <gel:persist scope="INSTANCE" value="${UNIQUE_NAME}" var="INST_INIT_UNIQUE_NAME"/>
                              <gel:persist scope="INSTANCE" value="${FIRST_NAME}" var="INST_INIT_FIRST_NAME"/>
                              <gel:persist scope="INSTANCE" value="${EMAIL}" var="INST_INIT_EMAIL"/>
                              <gel:persist scope="INSTANCE" value="${FULL_NAME}" var="INST_INIT_FULL_NAME"/>
                              <gel:persist scope="INSTANCE" value="${CLARITY_URL}" var="hostClarity"/>
                              <gel:persist scope="INSTANCE" value="${CLARITY_XOG_URL}" var="xog_url"/>
                            </core:otherwise>
                          </core:choose>
                        </gel:script>
                      </scriptText>
                    </customScript>
                    <Notifications notifyOwner="false">
                      <NotifyWhen stepActionInError="false" stepActionPerformed="false" value="0"/>
                      <Assignees/>
                    </Notifications>
                  </Action>
                  <Action code="updtUser" synchronized="true" type="BPM_SAT_CUSTOM">
                    <nls languageCode="ca" name="Update user"/>
                    <nls languageCode="cs" name="Update user"/>
                    <nls languageCode="da" name="Update user"/>
                    <nls languageCode="de" name="Update user"/>
                    <nls languageCode="en" name="Update user"/>
                    <nls languageCode="es" name="Update user"/>
                    <nls languageCode="fi" name="Update user"/>
                    <nls languageCode="fr" name="Update user"/>
                    <nls languageCode="hu" name="Update user"/>
                    <nls languageCode="it" name="Update user"/>
                    <nls languageCode="ja" name="Update user"/>
                    <nls languageCode="ko" name="Update user"/>
                    <nls languageCode="nl" name="Update user"/>
                    <nls languageCode="no" name="Update user"/>
                    <nls languageCode="pl" name="Update user"/>
                    <nls languageCode="pt" name="Update user"/>
                    <nls languageCode="ru" name="Update user"/>
                    <nls languageCode="sv" name="Update user"/>
                    <nls languageCode="tr" name="Update user"/>
                    <nls languageCode="zh" name="Update user"/>
                    <nls languageCode="zh_TW" name="Update user"/>
                    <customScript languageCode="gel">
                      <scriptText>
                        <gel:script xmlns:core="jelly:core" xmlns:file="jelly:com.niku.union.gel.FileTagLibrary" xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary" xmlns:soap="jelly:com.niku.union.gel.SOAPTagLibrary" xmlns:soapenv="http://schema.xmlsoap.org/soap/envelope/" xmlns:sql="jelly:sql" xmlns:xog="http://www.niku.com/xog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                          <gel:formatDate format="yyyy-MM-dd HH:mm:ss" stringVar="sysdate"/>
                          <gel:formatDate format="yyyy-MM-dd" stringVar="sysdate1"/>
                          <gel:log>${sysdate} - Begin</gel:log>
                          <core:set value="0" var="errorFlag"/>
                          <core:set value="0" var="warningFlag"/>
                          <core:set value="${gel_objectInstanceId}" var="ObjectId"/>
                          <!-- GENERAL  v2022090901 -->
                          <core:set value="200" var="instancesPerFile"/>
                          <core:set value="admin" var="clarityUserName"/>
                          <gel:setDataSource dbId="niku"/>
                          <core:catch var="except1">
                            <sql:query var="vQuery"><![CDATA[
		SELECT sr.unique_name,
               sr.last_name,
               sr.first_name,
			   csu.user_name,
               sr.email,
			   ocr.ma_prj_typ_res,
               CASE ocr.xtd_fdt_right 
			      WHEN NULL THEN 0
			      ELSE ocr.xtd_fdt_right
				END xtd_fdt_right
          FROM cmn_sec_users csu
         INNER JOIN srm_resources sr ON sr.user_id = csu.id
		 INNER JOIN odf_ca_resource ocr ON ocr.id = sr.id
         WHERE sr.id = ?
		   AND sr.is_active = 1
		]]><sql:param value="${ObjectId}"/>
                            </sql:query>
                          </core:catch>
                          <core:choose>
                            <core:when test="${except1 != null or vQuery.rowCount == 0 or vQuery.rowCount gt 1}">
                              <core:if test="${except1 != null}">
                                <gel:log>Exception dans la requête ${except1} </gel:log>
                              </core:if>
                              <core:if test="${vQuery.rowCount == 0}">
                                <gel:log>Aucune données trouvées </gel:log>
                              </core:if>
                              <core:if test="${vQuery.rowCount gt 1}">
                                <gel:log>Plusieurs ressources avec code interne = ${ObjectId} </gel:log>
                              </core:if>
                            </core:when>
                            <core:otherwise>
                              <!--Parse à construire-->
                              <core:forEach indexVar="i" items="${vQuery.rows}" trim="true" var="myline_row">
                                <core:set value="${myline_row.get('FIRST_NAME')}" var="firstName"/>
                                <core:set value="${myline_row.get('LAST_NAME')}" var="lastName"/>
                                <core:set value="${myline_row.get('UNIQUE_NAME')}" var="resourceId"/>
                                <core:set value="${myline_row.get('USER_NAME')}" var="userName"/>
                                <core:set value="${myline_row.get('EMAIL')}" var="emailAddress"/>
                                <core:set value="${myline_row.get('MA_PRJ_TYP_RES')}" var="typeRessource"/>
                                <core:set value="${myline_row.get('XTD_FDT_RIGHT')}" var="fdtRight"/>
                                <core:set value="EXTERNAL" var="userType"/>
                                <core:if test="${typeRessource == 1}">
                                  <core:set value="INTERNAL" var="userType"/>
                                </core:if>
                                <core:choose>
                                  <core:when test="${i == 0}">
                                    <gel:parse var="XOG">
                                      <NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/nikuxog_user.xsd">
                                        <Header action="write" externalSource="NIKU" objectType="user" version="13.3"/>
                                        <Users>
                                          <User externalId=" " isLDAP="true" userLanguage="French" userLocale="fr_FR" userName="${userName}" userStatus="ACTIVE" userTimezone="Europe/Brussels" userType="${userType}">
                                            <PersonalInformation emailAddress="${emailAddress}" firstName="${firstName}" lastName="${lastName}"/>
                                            <Resource resourceId="${resourceId}"/>
                                            <Groups>
                                              <Group id="baseUserGroup"/>
                                              <core:if test="${fdtRight == 1}">
                                                <Group id="ma_users_clarity"/>
                                              </core:if>
                                              <core:if test="${fdtRight == 0}">
                                                <Group id="ma_users_clarity_hors_fdt"/>
                                              </core:if>
                                            </Groups>
                                            <InstanceRights>
                                              <Right id="ResourceEditCalendar">
                                                <InstanceObject id="${resourceId}" type="SRM_RESOURCES"/>
                                              </Right>
                                              <Right id="ResourceEnterTime">
                                                <InstanceObject id="${resourceId}" type="SRM_RESOURCES"/>
                                              </Right>
                                            </InstanceRights>
                                          </User>
                                        </Users>
                                      </NikuDataBus>
                                    </gel:parse>
                                  </core:when>
                                </core:choose>
                              </core:forEach>
                              <!--Parse à xogger -->
                              <core:new className="com.niku.xog.client.XOGClientInterface" var="CALL_XOG"/>
                              <core:invoke method="invoke" on="${CALL_XOG}" var="CR_XOG">
                                <core:arg type="java.lang.String" value="${clarityUserName}"/>
                                <core:arg type="org.w3c.dom.Document" value="${XOG}"/>
                              </core:invoke>
                              <gel:set asString="true" select="$CR_XOG//XOGOutput/Status/@state" var="xogin_status"/>
                              <gel:set asString="true" select="$CR_XOG//XOGOutput/Statistics/@failureRecords" var="xogin_failure"/>
                              <gel:set asString="true" select="$CR_XOG//XOGOutput/Severity/text()" var="severity"/>
                              <core:if test="${xogin_status eq 'SUCCESS' and xogin_failure == 0 and severity ne 'FATAL'}">
                                <gel:log>INFO: Màj du user effectuée</gel:log>
                              </core:if>
                              <core:if test="${xogin_status ne 'SUCCESS' or xogin_failure gt 0 or severity eq 'FATAL'}">
                                <gel:log>ERROR: XmlOut=<gel:expr select="$CR_XOG"/>
                                </gel:log>
                              </core:if>
                            </core:otherwise>
                          </core:choose>
                          <gel:formatDate format="yyyy-MM-dd HH:mm:ss" stringVar="sysdate"/>
                          <gel:log>${sysdate} - End</gel:log>
                        </gel:script>
                      </scriptText>
                    </customScript>
                    <Notifications notifyOwner="false">
                      <NotifyWhen stepActionInError="false" stepActionPerformed="false" value="0"/>
                      <Assignees/>
                    </Notifications>
                  </Action>
                  <Action code="xtd_updt_resource" synchronized="true" type="BPM_SAT_CUSTOM">
                    <nls languageCode="ca" name="Update Resource"/>
                    <nls languageCode="cs" name="Update Resource"/>
                    <nls languageCode="da" name="Update Resource"/>
                    <nls languageCode="de" name="Update Resource"/>
                    <nls languageCode="en" name="Update Resource"/>
                    <nls languageCode="es" name="Update Resource"/>
                    <nls languageCode="fi" name="Update Resource"/>
                    <nls languageCode="fr" name="Update Resource"/>
                    <nls languageCode="hu" name="Update Resource"/>
                    <nls languageCode="it" name="Update Resource"/>
                    <nls languageCode="ja" name="Update Resource"/>
                    <nls languageCode="ko" name="Update Resource"/>
                    <nls languageCode="nl" name="Update Resource"/>
                    <nls languageCode="no" name="Update Resource"/>
                    <nls languageCode="pl" name="Update Resource"/>
                    <nls languageCode="pt" name="Update Resource"/>
                    <nls languageCode="ru" name="Update Resource"/>
                    <nls languageCode="sv" name="Update Resource"/>
                    <nls languageCode="tr" name="Update Resource"/>
                    <nls languageCode="zh" name="Update Resource"/>
                    <nls languageCode="zh_TW" name="Update Resource"/>
                    <customScript languageCode="gel">
                      <scriptText>
                        <gel:script xmlns:core="jelly:core" xmlns:file="jelly:com.niku.union.gel.FileTagLibrary" xmlns:gel="jelly:com.niku.union.gel.GELTagLibrary" xmlns:soap="jelly:com.niku.union.gel.SOAPTagLibrary" xmlns:soapenv="http://schema.xmlsoap.org/soap/envelope/" xmlns:sql="jelly:sql" xmlns:xog="http://www.niku.com/xog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                          <gel:formatDate format="yyyy-MM-dd HH:mm:ss" stringVar="sysdate"/>
                          <gel:formatDate format="yyyy-MM-dd" stringVar="sysdate1"/>
                          <gel:log>${sysdate} - Begin</gel:log>
                          <core:set value="0" var="errorFlag"/>
                          <core:set value="0" var="warningFlag"/>
                          <core:set value="${gel_objectInstanceId}" var="ObjectId"/>
                          <!-- GENERAL  5079171 -->
                          <core:set value="200" var="instancesPerFile"/>
                          <core:set value="admin" var="clarityUserName"/>
                          <gel:setDataSource dbId="niku"/>
                          <core:catch var="except1">
                            <sql:query var="vQuery"><![CDATA[
			SELECT sr.id, sr.unique_name, sr.first_name,  csu.user_name, sr.email,
				CASE WHEN ocr.ma_prj_typ_res   = 1   THEN UPPER(sr.last_name)
					WHEN ocr.ma_prj_typ_res IS NULL THEN UPPER(sr.last_name)  
					 ELSE REPLACE(UPPER(sr.last_name) || '.ext', '.ext.ext', '.ext')
				END AS last_name,
				CASE WHEN ocr.ma_prj_typ_res   = 1   THEN 'INTERNAL'
					 WHEN ocr.ma_prj_typ_res IS NULL THEN 'EXTERNAL'
					 ELSE 'EXTERNAL'
				END AS userType,
				CASE WHEN ocr.ma_prj_typ_res   = 1   THEN 'false'
					 WHEN ocr.ma_prj_typ_res IS NULL THEN 'true'
					 ELSE 'true'
				END AS externe,
				DECODE(sr.is_external, 0, 'EXTERNAL', 1, 'INTERNAL') AS is_external,
				sr.person_type, (SELECT lookup_code FROM cmn_lookups_v WHERE lookup_type = 'SRM_RESOURCE_TYPE' AND language_code = 'fr' AND id = sr.person_type) AS srm_resource_type,
				ocr.MA_PRJ_TYP_RES,
				(SELECT name FROM cmn_lookups_v WHERE lookup_type = 'MA_LOOKUP_TYP_RES' AND language_code = 'fr' AND lookup_code = ocr.MA_PRJ_TYP_RES) AS type_res,
				pr.prcategory, 
				--ocr.type_prestation_aff,
				ocr.ma_typ_prest,
				ocr.ma_direction
		   FROM cmn_sec_users              csu
				INNER JOIN srm_resources    sr ON sr.user_id = csu.id
				INNER JOIN odf_ca_resource ocr ON ocr.id     = sr.id
				INNER JOIN prj_resources    pr ON pr.prid    = sr.id		
		  WHERE sr.id = ?
		    AND sr.is_active = 1
			]]><sql:param value="${ObjectId}"/>
                            </sql:query>
                          </core:catch>
                          <core:choose>
                            <core:when test="${except1 != null or vQuery.rowCount == 0 or vQuery.rowCount gt 1}">
                              <core:if test="${except1 != null}">
                                <gel:log>Exception dans la requête ${except1} </gel:log>
                              </core:if>
                              <core:if test="${vQuery.rowCount == 0}">
                                <gel:log>Aucune données trouvées </gel:log>
                              </core:if>
                              <core:if test="${vQuery.rowCount gt 1}">
                                <gel:log>Plusieurs ressources avec code interne = ${ObjectId} </gel:log>
                              </core:if>
                            </core:when>
                            <core:otherwise>
                              <!--Parse à construire-->
                              <core:forEach indexVar="i" items="${vQuery.rows}" trim="true" var="myline_row">
                                <core:set value="${myline_row.get('FIRST_NAME')}" var="firstName"/>
                                <core:set value="${myline_row.get('LAST_NAME')}" var="lastName"/>
                                <core:set value="${myline_row.get('UNIQUE_NAME')}" var="resourceId"/>
                                <core:set value="${myline_row.get('USER_NAME')}" var="userName"/>
                                <core:set value="${myline_row.get('EMAIL')}" var="emailAddress"/>
                                <core:set value="${myline_row.get('ID')}" var="resourceIntId"/>
                                <core:set value="${myline_row.get('EXTERNE')}" var="isExternal"/>
                                <core:set value="${myline_row.get('MA_PRJ_TYP_RES')}" var="typeResource"/>
                                <core:set value="${myline_row.get('PRCATEGORY')}" var="category"/>
                                <!--core:set value="${myline_row.get('TYPE_PRESTATION_AFF')}" var="typePrestation"/-->
                                <core:set value="${myline_row.get('MA_TYP_PREST')}" var="typePrestation"/>
                                <!--valeur par défaut dans Clarity = _iem_ donc si ma_direction = _iem_ alors creation sinon modification -->
                                <core:set value="${myline_row.get('MA_DIRECTION')}" var="createUpdate"/>
                                <core:choose>
                                  <core:when test="${createUpdate != '_iem_'}">
                                    <!--modification de ressource-->
                                    <core:set value="0" var="finActive"/>
                                  </core:when>
                                  <core:otherwise>
                                    <!--creation de ressource-->
                                    <!--<core:if test="${typeResource == 1 and category == 'MOA' and typePrestation == 'non_app'}">-->
                                    <core:if test="${typeResource == 1 and category == 'MOA-SAM' and typePrestation == 'non_app'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="01_Inter" var="transactionClass"/>
                                      <core:set value="MOA I" var="resourceClass"/>
                                    </core:if>
                                    <core:if test="${typeResource == 1 and category == 'MOA-MSP' and typePrestation == 'non_app'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="01_Inter" var="transactionClass"/>
                                      <core:set value="MOASP I" var="resourceClass"/>
                                    </core:if>
                                    <core:if test="${typeResource == 1 and category == 'MOA-MFE' and typePrestation == 'non_app'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="01_Inter" var="transactionClass"/>
                                      <core:set value="MOAFE I" var="resourceClass"/>
                                    </core:if>
                                    <!--<core:if test="${typeResource == 1 and category == 'MOE-DDSI' and typePrestation == 'non_app'}">-->
                                    <core:if test="${typeResource == 1 and category == 'MOE-SAM' and typePrestation == 'non_app'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="07_DDSIG" var="transactionClass"/>
                                      <core:set value="MOEDSI I" var="resourceClass"/>
                                    </core:if>
                                    <core:if test="${typeResource == 1 and category == 'MOE-MSP' and typePrestation == 'non_app'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="18_MSP_I" var="transactionClass"/>
                                      <core:set value="MOESP I" var="resourceClass"/>
                                    </core:if>
                                    <core:if test="${typeResource == 1 and category == 'MOE-MFE' and typePrestation == 'non_app'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="16_MFE_P" var="transactionClass"/>
                                      <core:set value="MOEFE I" var="resourceClass"/>
                                    </core:if>
                                    <!-- <core:if test="${typeResource == 4 and category == 'MOE-DDSI' and typePrestation == 'non_app'}">-->
                                    <core:if test="${typeResource == 4 and category == 'MOE-SAM' and typePrestation == 'non_app'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="07_DDSIG" var="transactionClass"/>
                                      <core:set value="CDSDSI" var="resourceClass"/>
                                    </core:if>
                                    <core:if test="${typeResource == 4 and category == 'MOE-MSP' and typePrestation == 'non_app'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="19_MSP_P" var="transactionClass"/>
                                      <core:set value="CDSSP" var="resourceClass"/>
                                    </core:if>
                                    <core:if test="${typeResource == 4 and category == 'MOE-MFE' and typePrestation == 'non_app'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="16_MFE_P" var="transactionClass"/>
                                      <core:set value="CDSFE" var="resourceClass"/>
                                    </core:if>
                                    <!-- <core:if test="${typeResource == 2 and category == 'MOA' and typePrestation == '2a'}">-->
                                    <core:if test="${typeResource == 2 and category == 'MOA-SAM' and typePrestation == '2a'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="02_Prest" var="transactionClass"/>
                                      <core:set value="MOA E" var="resourceClass"/>
                                    </core:if>
                                    <core:if test="${typeResource == 2 and category == 'MOA-MSP' and typePrestation == '2a'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="02_Prest" var="transactionClass"/>
                                      <core:set value="MOASP E" var="resourceClass"/>
                                    </core:if>
                                    <core:if test="${typeResource == 2 and category == 'MOA-MFE' and typePrestation == '2a'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="02_Prest" var="transactionClass"/>
                                      <core:set value="MOAFE E" var="resourceClass"/>
                                    </core:if>
                                    <!-- <core:if test="${typeResource == 2 and category == 'MOE-DDSI' and typePrestation == '2a'}">-->
                                    <core:if test="${typeResource == 2 and category == 'MOE-SAM' and typePrestation == '2a'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="07_DDSIG" var="transactionClass"/>
                                      <core:set value="MOEDSI E" var="resourceClass"/>
                                    </core:if>
                                    <core:if test="${typeResource == 2 and category == 'MOE-MSP' and typePrestation == '2a'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="19_MSP_P" var="transactionClass"/>
                                      <core:set value="MOESP E" var="resourceClass"/>
                                    </core:if>
                                    <core:if test="${typeResource == 2 and category == 'MOE-MFE' and typePrestation == '2a'}">
                                      <core:set value="1" var="finActive"/>
                                      <core:set value="16_MFE_P" var="transactionClass"/>
                                      <core:set value="MOEFE E" var="resourceClass"/>
                                    </core:if>
                                  </core:otherwise>
                                </core:choose>
                                <core:choose>
                                  <core:when test="${finActive == 1}">
                                    <gel:log>Activation financiere : OUI</gel:log>
                                  </core:when>
                                  <core:otherwise>
                                    <gel:log>Activation financiere : NON</gel:log>
                                  </core:otherwise>
                                </core:choose>
                                <gel:log>createUpdate=${createUpdate}, finActive=${finActive}, typeResource=${typeResource}, category=${category}, typePrestation=${typePrestation}</gel:log>
                                <core:choose>
                                  <core:when test="${i == 0}">
                                    <gel:parse var="XOG">
                                      <NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/nikuxog_resource.xsd">
                                        <Header action="write" externalSource="NIKU" objectType="resource" version="13.3"/>
                                        <Resources>
                                          <Resource externalId=" " isExternal="${isExternal}" resourceId="${resourceId}" resourceType="LABOR">
                                            <PersonalInformation emailAddress="${emailAddress}" firstName="${firstName}" lastName="${lastName}"/>
                                            <core:if test="${finActive == 1}">
                                              <ManagementInformation inputTypeCode="ma_defaut"/>
                                            </core:if>
                                            <CustomInformation>
                                              <ColumnValue name="x_res_calendar">${hostClarity}/niku/nu#action:projmgr.getResourceCalendar&amp;id=</ColumnValue>
                                              <ColumnValue name="x_isp_fdt_link_">${hostClarity}/pm/#/timesheets/timesheet?resourceId=</ColumnValue>
                                              <ColumnValue name="ma_mgt_calend">1</ColumnValue>
                                              <!--Reinitialisation de la valeur ma_direction = null-->
                                              <core:if test="${createUpdate == '_iem_'}">
                                                <ColumnValue name="ma_direction"/>
                                              </core:if>
                                            </CustomInformation>
                                            <core:if test="${finActive == 1}">
                                              <FinancialInformation>
                                                <SupplementalInformation active="${finActive}" department="ma_defaut" location="ma_site_macif" resourceClass="${resourceClass}" transactionClass="${transactionClass}"/>
                                                <Expenses reimbursementCurrency=""/>
                                              </FinancialInformation>
                                            </core:if>
                                            <Calendar baseCalendar="MACIF standard 5j" resetCalendar="false"/>
                                          </Resource>
                                        </Resources>
                                      </NikuDataBus>
                                    </gel:parse>
                                  </core:when>
                                </core:choose>
                              </core:forEach>
                              <!--Parse à xogger -->
                              <core:new className="com.niku.xog.client.XOGClientInterface" var="CALL_XOG"/>
                              <core:invoke method="invoke" on="${CALL_XOG}" var="CR_XOG">
                                <core:arg type="java.lang.String" value="${clarityUserName}"/>
                                <core:arg type="org.w3c.dom.Document" value="${XOG}"/>
                              </core:invoke>
                              <gel:set asString="true" select="$CR_XOG//XOGOutput/Status/@state" var="xogin_status"/>
                              <gel:set asString="true" select="$CR_XOG//XOGOutput/Statistics/@failureRecords" var="xogin_failure"/>
                              <gel:set asString="true" select="$CR_XOG//XOGOutput/Severity/text()" var="severity"/>
                              <gel:log>XOG: XmlIn=<gel:expr select="$XOG"/>
                              </gel:log>
                              <core:if test="${xogin_status eq 'SUCCESS' and xogin_failure == 0 and severity ne 'FATAL'}">
                                <gel:log>INFO: Màj de la ressource effectuée</gel:log>
                                <core:set value="${NbRscUpdateOK + 1}" var="NbRscUpdateOK"/>
                              </core:if>
                              <core:if test="${xogin_status ne 'SUCCESS' or xogin_failure gt 0 or severity eq 'FATAL'}">
                                <core:set value="${NbRscUpdateKO + 1}" var="NbRscUpdateKO"/>
                                <gel:log>ERROR: XmlOut=<gel:expr select="$CR_XOG"/>
                                </gel:log>
                              </core:if>
                            </core:otherwise>
                          </core:choose>
                          <gel:formatDate format="yyyy-MM-dd HH:mm:ss" stringVar="sysdate"/>
                          <gel:log>${sysdate} - End</gel:log>
                        </gel:script>
                      </scriptText>
                    </customScript>
                    <Notifications notifyOwner="false">
                      <NotifyWhen stepActionInError="false" stepActionPerformed="false" value="0"/>
                      <Assignees/>
                    </Notifications>
                  </Action>
                </Operations>
                <TransitionRestrictions>
                  <TransitionRestriction>
                    <Join type="BPM_JT_NONE">
                      <Condition sequencNo="1" type="BPM_SCT_PRECONDITION"/>
                    </Join>
                  </TransitionRestriction>
                  <TransitionRestriction>
                    <Split type="BPM_ST_SEQUENCE">
                      <Condition sequencNo="1" type="BPM_SCT_POSTCONDITION">
                        <Transitions>
                          <Transition to="Finish"/>
                        </Transitions>
                      </Condition>
                    </Split>
                  </TransitionRestriction>
                </TransitionRestrictions>
              </Step>
            </Steps>
            <Groups/>
            <OBSAssocs complete="false"/>
          </Process>
        </Processes>
      </contentPack>
    </NikuDataBus>
  