Бөлісу құралы:


Үлгі: реттелетін тіл шектеуі бар Universal Resource Scheduling қызметін кеңейту

Бұл қадамдық нұсқау Universal Resource Scheduling (URS) бағдарламасында ресурс сәйкестігін түсіну және реттеу бөліміне қосымша нұсқаулық болып табылады

Бұл қадамдық нұсқаулықта біз Language шектеуі бар Universal Resource Scheduling ресурстарын кеңейтеміз. Ресурстарды олар сөйлейтін тілдер бойынша сүзгілеуді қалайтын ұйымды қарастырыңыз. Сонымен қатар олар Requirement жазбасында тапсырма үшін қажетті тілді алуды қажет етеді. Бұл шектеу кірістірілген Territory шектеуіне ұқсас үлгі бойынша орындалады. Жаңа Language басты нысаны ресурс сөйлей алатын әртүрлі тілдерді сақтайды. Содан кейін көпке көп қатынас нысаны арқылы Resource жазбасын көптеген Languages нысандарына байланыстыруға болады. Requirement нысанында біз мұның екі іздеу атрибутын жасау арқылы үлгісін жасаймыз : Primary Language және Secondary Language. Талап үшін қолжетімді ресурстарды іздеу кезінде тек Primary Language немесе Secondary Language атрибуттарымен байланыстырылған ресустар ғана көрсетіледі.

Жаңа нысандар мен қатынастар жасау

Бұл бөлімде сіз басты Language нысаны үшін жаңа схема жасайсыз және Resource және Requirement нысандарын тиісті қарым-қатынасар арқылы жаңа Language нысанына жаңартасыз.

Жаңа жариялаушыны жасау

  1. Dynamics 365 бағдарламасының Реттеулер параметрінде жаңа жариялаушыны жасаңыз

  2. Жаңа Жариялаушы формасын төмендегі мәліметтермен толтырыңыз:

    Өріс Мәні
    Көрсетілетін атау Language
    Атауы тіл
    Префикс lang
  3. Сақтау және жабу түймешігін басыңыз

Жаңа шешім жасау

  1. Dynamics 365 бағдарламасының Реттеулер параметрінде жаңа шешімді жасаңыз

  2. Жаңа шешім формасын төмендегі мәліметтермен толтырыңыз:

    Өріс Мәні
    Көрсетілетін атау Language
    Атауы Language
    Жариялаушы Language
    Нұсқа 1.0.0.0
  3. Сақтау түймешігін басыңыз

Тіл нысанын жасау

  1. Тіл шешімінде жаңа нысан жасаңыз

  2. Жаңа нысан формасын төмендегі мәліметтермен толтырыңыз:

    Өріс Мәні
    Көрсетілетін атау Language
    Көптік атау Тілдер
    Атауы lang_language (lang_ префиксі автоматты түрде толтырылады және тек оқуға арналған)
  3. Сақтау түймешігін басыңыз

Ресурс нысанынан тіл нысанына дейін көпке көп қарым-қатынасын жасау

  1. Тіл нысанында жаңа көпке көп қарым-қатынасын жасаңыз

  2. Жаңа қарым-қатынас формасын төмендегі мәліметтермен толтырыңыз:

    Өріс Мәні
    Ағымдағы нысан
    Бейнелеу параметрі Көптік атауды пайдалану
    Басқа нысан
    Нысан атауы Тапсырыс беруге болатын ресурс
  3. Сақтау және жабу түймешігін басыңыз

  4. Тіл нысаны формасын жабыңыз

Талап нысанынан тіл нысанына дейін қарым-қатынастарды жасау

  1. Тіл шешімінде ағымдағы ресурс талабы нысанын шешімге қосыңыз (Қажетті компоненттер жоқ диалогтық терезесі көрсетілсе Жоқ, қажетті компоненттерді қоспау опциясын таңдаңыз.)

  2. Ресурс талабы нысанында жаңа өріс жасаңыз

  3. Жаңа өріс формасын төмендегі мәліметтермен толтырыңыз:

    Өріс Мәні
    Көрсетілетін атау Негізгі тіл
    Деректер түрі Іздеу
    Мақсат Жазба түрі Language
  4. Сақтау және жабу түймешігін басыңыз

  5. Ресурс талабы нысанында жаңа өріс жасаңыз

  6. Жаңа өріс формасын төмендегі мәліметтермен толтырыңыз:

    Өріс Мәні
    Көрсетілетін атау Қосымша тіл
    Деректер түрі Іздеу
    Мақсат Жазба түрі Language
  7. Сақтау және жабу түймешігін басыңыз

Талаптың негізгі формасын жаңарту

  1. Ресурс талабы нысанында ағымдағы ақпарат формасын нысанның қосымша компоненттеріне қосыңыз (Қажетті компоненттер жоқ диалогтық терезесі көрсетілсе Жоқ, қажетті компоненттерді қоспау опциясын таңдаңыз.)
  2. Ақпарат формасында екі жаңа негізгі тіл және қосымша тіл атрибутын формаға пайдаланушылар талаптарды жасаған кезде осы ақпаратты енгізе алатындай қосу үшін өріс жетектеушісін пайдаланыңыз.
  3. Сақтау түймешігін басыңыз
  4. Жариялау түймешігін басыңыз
  5. Пішін өңдегішін жабуға болады

Жиынтық

Жоғарыдағы қадамдарда біз жаңа тіл нысанын жасадық. Содан кейін біз ресурс және талап нысандары бар жаңа қарым-қатынастар қостық. Ресурстар бірнеше тілдермен байланысты болуы мүмкін, себебі біз тіл және ресурс нысандары арасында көпке көп қарым-қатынасын қостық. Талаптар екі тілмен байланысты болуы мүмкін, себебі біз жаңа тіл нысанын көрсететін талап нысанына екі іздеу атрибутын қостық.

Деректерді қосуда

Жаңа жазбаларды тіл нысанына қосу үшін кеңейтілген іздеуді пайдаланыңыз. Содан кейін ресурс жазбасын ашып, шарлау жолағындағы тіл қарым-қатынасына өту арқылы ресурс жазбаларын жаңа тіл жазбаларына байланыстыра аласыз. Талап жазбалары үшін, талап формасындағы жаңа негізгі тіл және қосымша тіл өрістеріне толтыруға болады.

Кесте тақтасын реттеу

Кесте тақтасындағы ресурстарды жаңа тіл шектеуімен сүзгілеу үшін, біз ресурстар сұрауын шығару және сүзгі орналасуының конфигурация жазбаларын жаңартамыз.

Сүзгі орналасуының конфигурациясы

Tipp

Төмендегі қадамдар үшін, өзгертулерді жасау мақсатында және содан кейін өзгертулерді Universal Resource Scheduling өңдегішіне қайта қою үшін XML синтаксис бөлектеуіне қолдау көрсететін мәтін өңдегішін пайдалану тиімді болып табылады.

Сүзгі орналасуының конфигурациясы сүзгі тақтасының орналасуын реттеуге арналған XML орналасуының анықтамасы болып табылады.

Hinweis

Бұл жаттығу үшін біз Universal Resource Scheduling бағдарламасымен бірге жеткізілген барлық әдепкі сүзгілерді сүзгі тақтасынан алып тастаймыз және қолжетімді сүзгі ретінде тек тілдерді қосамыз.

<control type="combo" source="entity" key="Languages" inactive-state="1" label-id="Languages" entity="lang_language" multi="true" />

control элементі сүзгі тақтасына жаңа басқару элементі қосады. Мынау әрбір атрибут сипаттамасы:

Атауы Сипаттамасы
type Сүзгі басқару элементінің түрі. combo басқару элементі таңдауға болатын мәндері бар ашылмалы терезені көрсетеді.
source Ашылмалы басқару элементіне арналған мәндер көзі. entity көзі нысан жазбаларын ашылмалы терезеде көрсетеді
key Таңдалған мәндерді шектеу сипаттары қалтасында сақтау үшін пайдаланылатын кілт
inactive-state Бұл нысан үшін белсенді емес statecode. Бұл белсенді емес жазбаларды ашылмалы мәзірден алып тастау үшін пайдаланылады
label-id Осы басқару элементі үшін пайдалануға арналған локализацияланған белгі
entity Бұл нысан жазбалары ашылмалы тізімде көрсетіледі
multi Бір немесе бірнеше жазба таңдау мүмкіндігін беру үшін ашылмалы тізімді конфигурациялайды

Сүзгі орналасуы:

<?xml version="1.0" encoding="utf-8" ?>
<filter>
  <controls>
    <control type="combo" source="entity" key="Languages" inactive-state="1" label-id="Languages" entity="lang_language" multi="true" />
  </controls>
</filter>

Жаңа тілдер тақтасын жасау

Бұл өзгерістерді оқшауланған күйде сақтау үшін, біз бөлек жаңа кесте тақтасын жасап, өзгерістерді сонда жүзеге асырамыз, бірақ сіз осы өзгерістерді басқа кесте тақталары автоматты түрде иеленетіндей әдепкі кесте тақтасына әрдайым енгізе аласыз.

  1. Dynamics 365 бағдарламасында жоғарғы шарлау жолағында ресурсты жоспарлау > кесте тақтасы тармағына өтіңіз.
  2. Жаңа тақта жасау үшін жоғарғы оң жақтағы + белгісін басыңыз
  3. Жаңа тақтаға Тіл атауын беріңіз
  4. Диалогтық терезенің төменгі жағында Қосу түймешігін басыңыз. Жаңа тақта жасалады.

Кесте тақтасының сүзгі орналасуын жаңарту

Келесі біз кесте тақтасы пайдаланған сүзгі орналасулары мен сұрауларын сақтайтын жаңа конфигурация жазбасын жасаймыз және содан кейін жаңадан жасалған кесте тақтасын жаңа конфигурация жазбасымен байланыстырамыз. Бұл әрекетті орындаудың бірнеше жолы бар, бірақ мынау ең жылдамы:

  1. Жоғарғы оң жақта "Тіл" қойыншасын екі рет басыңыз
  2. Жалпы параметрлер > Басқа параметрлер тармағына қарай төмен айналдырыңыз
  3. Сүзгі орналасу өрісін тауып, өңдегішті ашу үшін оң жақтағы түймешікті басыңыз
  4. Мән өрісін жоғарыдағы сүзгі орналасу кодымен жаңартыңыз және басқаша сақтау түймешігін басыңыз.
  5. Атау өрісіне "Тіл сүзгісінің орналасуы" атауын енгізіп, Сақтау түймешігін басыңыз. Бұл жаңа конфигурация жазбасын жасайды және кесте тақтасын жазбамен байланыстырады.
  6. Диалогтық терезенің төменгі жағында Қолдану түймешігін басыңыз.

Тақта қайта жүктеледі және сол жақта жаңа орналасуы бар сүзгі тақтасы көрсетіледі; тек тілдер сүзгісі қолжетімді болады. Сүзгілеу әзір жұмыс істемейді, себебі жаңа сүзгі артықшылықтарын пайдалану үшін Ресурстар сұрауын шығаруды жаңартуымыз керек.

Ресурстар сұрауын шығару конфигурациясы

Tipp

Төмендегі қадамдар үшін, өзгертулерді жасау мақсатында және содан кейін өзгертулерді Universal Resource Scheduling өңдегішіне қайта қою үшін XML синтаксис бөлектеуіне қолдау көрсететін мәтін өңдегішін пайдалану тиімді болып табылады.

Ресурстар сұрауын шығару конфигурациясы ресурс сәйкестігі API интерфейсі пайдаланатын UFX сұрауы болып табылады. Ол кіріс дерегі ретінде сүзгі тақтасына енгізілген мәндерді қабылдайды және сәйкес ресурстарды табу үшін динамикалық түрде дұрыс FetchXML сұрауын жасайды.

Төменде ресурс тілдері бойынша сәйкестендіру және реттеу үшін ресурстар сұрауын шығаруға қосылған жаңа бөліктер берілген.

bookableresource ішінен lang_language ішіне біріктірулерді қосу

<link-entity name="lang_lang_language_bookableresource" from="bookableresourceid" to="bookableresourceid" alias="lang_primary" link-type="outer" ufx:if="$input/Languages/bag[1]">
  <attribute name="lang_languageid" alias="lang_primary" groupby="true" />

  <filter>
    <condition attribute="lang_languageid" operator="eq">
      <ufx:value select="$input/Languages/bag[1]/@ufx-id" attribute="value" />
    </condition>          
  </filter>
</link-entity>

<link-entity name="lang_lang_language_bookableresource" from="bookableresourceid" to="bookableresourceid" alias="lang_secondary" link-type="outer" ufx:if="$input/Languages/bag[2]">
  <attribute name="lang_languageid" alias="lang_secondary" groupby="true" />

  <filter>
    <condition attribute="lang_languageid" operator="eq">
      <ufx:value select="$input/Languages/bag[2]/@ufx-id" attribute="value" />
    </condition>          
  </filter>
</link-entity>

<link-entity name="lang_lang_language_bookableresource" from="bookableresourceid" to="bookableresourceid" alias="lang_others" link-type="outer" ufx:if="$input/Languages/bag[position() > 2]">

  <filter>
    <condition attribute="lang_languageid" operator="in">
      <ufx:apply select="$input/Languages/bag[position() > 2]">
        <value>
          <ufx:value select="@ufx-id" />
        </value>
      </ufx:apply>
    </condition>            
  </filter>
</link-entity>        

<filter type="or">
  <condition entityname="lang_primary" attribute="lang_languageid" operator="not-null" ufx:if="$input/Languages/bag[1]" />
  <condition entityname="lang_secondary" attribute="lang_languageid" operator="not-null" ufx:if="$input/Languages/bag[2]" />
  <condition entityname="lang_others" attribute="lang_languageid" operator="not-null" ufx:if="$input/Languages/bag[position() > 2]" />          
</filter>

Сүзгі тақтасында таңдалған мәндер сұрауға арналған кіріс мәндері ретінде өткізіледі және XPath $input айнымалысында қолжетімді.

Ресурстар сұрауын шығару Resource (bookableresource) нысанын сұрау үшін FetchXML сұрауын пайдаланады. Біз FetchXML link-entity элементін тек сүзгі тақтасында таңдалған тіл жазбаларымен байланыстырылған ресурстарды қайтару үшін ғана пайдаланамыз. Сәйкес тілдерді көрсетуге және негізгі немесе қосымша тіл бойынша реттеуге қолдау көрсету үшін, Ресурс ұясының үлгісі бөлімінде сипатталғандай біз бірнеше link-entity біріктірулерін пайдаланамыз.

Мынау әр element пен attribute сипаттамасы:

Атауы Сипаттамасы
link-entity Ресурс пен тіл нысандары арасында көпке көп қарым-қатынасына бірігуді жасаңыз
ufx:if Бұл FetchXML элементін (link-entity) тек осы атрибуттағы XPath өрнегі мәнді қайтарса ғана шығарыңыз
attribute Негізгі немесе қосымша тіл сәйкестігін қайтарыңыз
filter және condition Көпке көп қарым-қатынас жазбаларын көрсетілген тіл идентификаторларына сәйкес келетіндеріне ғана сүзгілеңіз
ufx:value және select XPath өрнегінің нәтижесін select атрибутында шығарады
ufx:apply және select select атрибутындағы XPath өрнегінен қайтарылған әрбір нәтиже үшін еншілес FetchXML элементтерін шығарыңыз
value Тіл жазбасының идентификаторын қамтиды

Ресурстың сұрыптау ретін анықтау

Әрбір ресурстың тағайындалған тілдеріне негізделген сәйкес ресурстарын шығарғаннан кейін, оның сұрыптау ретін анықтау үшін жаңа lang_order сипатын тағайындаймыз.

<bag>
  <lang_order ufx:select="iif(lang_primary and lang_secondary, 1, iif(lang_primary, 2, iif(lang_secondary, 3, 4)))" />
</bag>

Мынау әр element пен attribute сипаттамасы:

Атауы Сипаттамасы
lang_order lang_order атты FetchXML сұрауынан қайтарылған әр ресурс үшін жаңа сипат жасаңыз
ufx:select Осы атрибуттағы XPath өрнегінің нәтижесін lang_order сипатына тағайындаңыз. Бұрын сұраудан алынған lang_primary және lang_secondary сипаттары ресурсты сәйкестендіру ретін анықтау үшін XPath iif мүмкіндігімен бірге пайдаланылады.

Нәтижелерді реттеу

<Resources ufx:select="order(Resources, 'lang_order')" />

UFX сұраулары жүйелі ретпен өңделеді. Ресурстар FetchXML арқылы шығарылғаннан кейін, нәтижелер Resources сипатына тағайындалады. Біз нәтижелерді бұрын қосылған lang_order сипатының негізінде сұрыптаймыз және сұрыпталған нәтижелерді Resources сипатына қайта тағайындаймыз.

Мынау әр element пен attribute сипаттамасы:

Атауы Сипаттамасы
Resources Resources сипатын қайта тағайындаңыз
ufx:select Осы атрибуттағы XPath өрнегінің нәтижесін Resources сипатына тағайындаңыз. XPath order мүмкіндігі Resources тізімін оның lang_order сипатында реттеу үшін пайдаланылады.

Hinweis

Әдепкі Universal Resource Scheduling бағдарламасымен бірге жеткізілетін ресурстар сұрауын шығару Universal Resource Scheduling бағдарламасы қамтитын барлық ресурс шектеулеріне қолдау көрсететін үлкен көлемді сұрау болып табылады. Бұл жаттығу үшін біз тек әдепкі сұрау ішкі жиынын пайдаланамыз және тілдерді жалғыз сүзгі ретінде қосамыз.

<?xml version="1.0" encoding="utf-8" ?>
<bag xmlns:ufx="https://schemas.microsoft.com/dynamics/2017/universalfetchxml">
  <Resources ufx:source="fetch">
    <fetch mapping="logical" aggregate="true">
      <entity name="bookableresource">
        <attribute name="bookableresourceid" alias="bookableresourceid" groupby="true"/>
        <attribute name="name" alias="name" groupby="true"/>
        <attribute name="calendarid" alias="calendarid" groupby="true"/>
        <attribute name="resourcetype" alias="resourcetype" groupby="true"/>
        <attribute name="msdyn_startlocation" alias="startlocation" groupby="true"/>

        <!-- Language join -->
        <link-entity name="lang_lang_language_bookableresource" from="bookableresourceid" to="bookableresourceid" alias="lang_primary" link-type="outer" ufx:if="$input/Languages/bag[1]">
          <attribute name="lang_languageid" alias="lang_primary" groupby="true" />
          
          <filter>
            <condition attribute="lang_languageid" operator="eq">
              <ufx:value select="$input/Languages/bag[1]/@ufx-id" attribute="value" />
            </condition>          
          </filter>
        </link-entity>

        <link-entity name="lang_lang_language_bookableresource" from="bookableresourceid" to="bookableresourceid" alias="lang_secondary" link-type="outer" ufx:if="$input/Languages/bag[2]">
          <attribute name="lang_languageid" alias="lang_secondary" groupby="true" />
          
          <filter>
            <condition attribute="lang_languageid" operator="eq">
              <ufx:value select="$input/Languages/bag[2]/@ufx-id" attribute="value" />
            </condition>          
          </filter>
        </link-entity>
        
        <link-entity name="lang_lang_language_bookableresource" from="bookableresourceid" to="bookableresourceid" alias="lang_others" link-type="outer" ufx:if="$input/Languages/bag[position() > 2]">
          
          <filter>
            <condition attribute="lang_languageid" operator="in">
              <ufx:apply select="$input/Languages/bag[position() > 2]">
                <value>
                  <ufx:value select="@ufx-id" />
                </value>
              </ufx:apply>
            </condition>            
          </filter>
        </link-entity>        
        
        <filter type="or">
          <condition entityname="lang_primary" attribute="lang_languageid" operator="not-null" ufx:if="$input/Languages/bag[1]" />
          <condition entityname="lang_secondary" attribute="lang_languageid" operator="not-null" ufx:if="$input/Languages/bag[2]" />
          <condition entityname="lang_others" attribute="lang_languageid" operator="not-null" ufx:if="$input/Languages/bag[position() > 2]" />          
        </filter>
        
        <link-entity name="systemuser" from="systemuserid" to="userid" link-type="outer">
          <attribute name="systemuserid" alias="systemuserid" groupby="true" />
          <attribute name="entityimage_url" alias="userimagepath" groupby="true"/>
        </link-entity>

        <link-entity name="contact" from="contactid" to="contactid" link-type="outer">
          <attribute name="contactid" alias="contactid" groupby="true"/>
          <attribute name="entityimage_url" alias="contactimagepath" groupby="true"/>
        </link-entity>
        
        <link-entity name="account" from="accountid" to="accountid" link-type="outer">
          <attribute name="accountid" alias="accountid" groupby="true"/>
          <attribute name="entityimage_url" alias="accountimagepath" groupby="true"/>
        </link-entity>
      </entity>
    </fetch>

    <bag>
      <imagepath ufx:select="accountimagepath | contactimagepath | userimagepath" />

      <accountimagepath ufx:select="$null" />
      <contactimagepath ufx:select="$null" />
      <userimagepath ufx:select="$null" />
      
      <lang_order ufx:select="iif(lang_primary and lang_secondary, 1, iif(lang_primary, 2, iif(lang_secondary, 3, 4)))" />
    </bag>
  </Resources>

  <Resources ufx:select="order(Resources, 'lang_order')" />
</bag>

Кесте тақтасының ресурстар сұрауын шығаруды жаңарту

  1. Жоғарғы оң жақта "Тіл" қойыншасын екі рет басыңыз
  2. Жалпы параметрлер > Басқа параметрлер тармағына қарай төмен айналдырыңыз
  3. Ресурстар сұрауын шығару өрісін тауып, өңдегішті ашу үшін оң жақтағы түймешікті басыңыз
  4. Мән өрісін жоғарыдағы ресурстар сұрауын шығару кодымен жаңартыңыз және басқаша сақтау түймешігін басыңыз
  5. Атау өрісіне "Тіл ресурсының сұрауы" атауын енгізіп, Сақтау түймешігін басыңыз. Бұл жаңа конфигурация жазбасын жасайды және кесте тақтасын жазбамен байланыстырады.
  6. Диалогтық терезенің төменгі жағында Қолдану түймешігін басыңыз.

Тақта жаңартылған конфигурациямен қайта жүктеледі. Енді сүзгілеу жұмыс істейді. Егер тіл жазбаларын жасап, оларды ресурс жазбаларымен байланыстырған болсаңыз, енді сіз ресурстарды олардың байланыстырылған тілдерімен сүзгілей аласыз.

Жиынтығы

Жоғарыдағы қадамдарда біз тіл нысаны үшін сүзгі басқару элементін көрсету үшін сүзгі тақтасын өзгерттік. Сондай-ақ ресурстар сұрауын шығаруды таңдалған тіл жазбаларымен байланыстырылған ресурстарды сәйкестендіру үшін өзгерттік. Пайдаланушы сүзгі басқару элементінде мәндерді таңдап, іздеу түймешігін басқан кезде, мәндер сұрауға өтеді және FetchXML сұрауы тек сәйкес ресурстарды ғана қайтарады.

Кесте көмекшісін реттеу

Кесте көмекшісіндегі жаңа тіл шектеулерін пайдалану үшін біз кесте көмекшісінің сүзгі орналасуын және шектеулер сұрауын шығару конфигурациясын реттеуіміз қажет.

Әр тақтаны жеке реттеуге болатын кесте тақтасының реттеулеріне қарағанда, кесте көмекшісінің реттеулері кесте көмекшісі пайдаланылатын барлық тақталарға әсер етеді. Кесте көмекшісінің реттеулері жоспарланатын түрге немесе барлық түрлерге тән болуы мүмкін. Бұл мысалда біз кесте көмекшісін барлық түрлер үшін реттейміз.

Кесте көмекшісі сүзгі орналасуының конфигурациясы

Tipp

Төмендегі қадамдар үшін, өзгертулерді жасау мақсатында және содан кейін өзгертулерді Universal Resource Scheduling өңдегішіне қайта қою үшін XML синтаксис бөлектеуіне қолдау көрсететін мәтін өңдегішін пайдалану тиімді болып табылады.

Кесте тақтасының сүзгі орналасуы сияқты кесте көмекшісінің сүзгі орналасу конфигурациясы сүзгі тақтасындағы басқару элементтерінің орналасуын анықтайды. Кесте тақтасына қарағанда, кесте көмекшісі басталу уақыты, аяқталу уақыты, ұзақтығы , т.б. сияқты көп сүзгілерді пайдаланатындықтан, басқаша орналасу пайдаланылады.

Hinweis

Бұл жаттығу үшін біз Universal Resource Scheduling бағдарламасына кесте көмекшісінің сүзгі орналасу конфигурациясынан жеткізілетін әдепкі сүзгілердің ішкі жиынын қайта пайдаланамыз және тілдер ашылмалы тізімін жалғыз қолжетімді сүзгі ретінде қосамыз.

Орналасуға қосатын сүзгі жоғарыдағы Сүзгі орналасуының конфигурациясы бөліміндегімен бірдей. Басқа басқару элементтері кесте көмекшісінің іздеу параметрлерін өзгерту үшін қажет.

Толық кесте көмекшісі сүзгісінің орналасуы

<?xml version="1.0" encoding="utf-8" ?>
<filter>
  <controls>
    <control type="twocolumn">
      <control type="combo" source="optionset" key="Requirement/msdyn_worklocation" label-id="ScheduleAssistant.West.settingsform.WorkLocation" entity="msdyn_resourcerequirement" attribute="msdyn_worklocation">
        <bind property="disabled" to="Requirement/InitialWorkLocation" operator="eq" value="690970002" />
        <data>
          <value id="690970000" />
          <value id="690970001" />
          <value id="690970002" />
        </data>
      </control>
      <control type="duration" key="Requirement/msdyn_remainingduration" label-id="ScheduleAssistant.West.settingsform.AvailableDuration" />
    </control>
    <control type="distance" key="Requirement/Radius" label-id="ScheduleAssistant.West.settingsform.Radius" min="1">
      <bind property="disabled" to="Requirement/msdyn_worklocation" operator="eq" value="690970002" />
    </control>
    <control type="datetime" key="Requirement/msdyn_fromdate" label-id="ScheduleAssistant.West.settingsform.StartDay">
      <bind property="disabled" to="Requirement/RealTimeMode" operator="eq" value="true" />
      <bind property="max" to="Requirement/msdyn_todate" operator="eq" />
    </control>
    <control type="datetime" key="Requirement/msdyn_todate" label-id="ScheduleAssistant.West.settingsform.EndDay">
      <bind property="min" to="Requirement/msdyn_fromdate" operator="eq" />
    </control>
    <control type="combo" source="entity" key="Languages" inactive-state="1" label-id="Languages" entity="lang_language" multi="true" />
  </controls>
</filter>

Кесте көмекшісі сүзгісінің орналасуын жаңарту

  1. Жоғарғы оң жақта "Тіл" қойыншасын екі рет басыңыз
  2. Жоғарғы оң жақтағы Әдепкі параметрлерді ашу түймешігін басыңыз
  3. Кесте түрлері бөліміне айналдырыңыз және сол жақтағы тізімнен ешқайсысы опциясын таңдаңыз
  4. Кесте көмекшісінің сүзгі орналасу өрісін тауып, өңдегішті ашу үшін оң жақтағы түймешікті басыңыз
  5. Мән өрісін жоғарыдағы кесте көмекшісінің сүзгісі кодымен жаңартыңыз және басқаша сақтау түймешігін басыңыз.
  6. Атау өрісіне "Кесте көмекшісі сүзгісінің орналасуы" атауын енгізіп, Сақтау түймешігін басыңыз. Бұл жаңа конфигурация жазбасын жасайды және кесте тақтасын жазбамен байланыстырады.
  7. Диалогтық терезенің төменгі жағында Қолдану түймешігін басыңыз.

Тақта қайта жүктеледі. Содан кейін кесте көмекшісін біздің жаңа тіл шектеулерімізбен пайдаланбас бұрын, талаптағы тілдер жиыны кесте көмекшісін іздеудің бір бөлшегі болуы үшін шектеулер сұрауын шығаруды өзгертуіміз қажет.

Шектеулер сұрауын шығару конфигурациясы

Tipp

Төмендегі қадамдар үшін, өзгертулерді жасау мақсатында және содан кейін өзгертулерді Universal Resource Scheduling өңдегішіне қайта қою үшін XML синтаксис бөлектеуіне қолдау көрсететін мәтін өңдегішін пайдалану тиімді болып табылады.

Шектеулер сұрауын шығару конфигурациясы талап шектеулерін алу API интерфейсі пайдаланатын UFX сұрауы болып табылады. Ол кіріс дерегі ретінде талап жазбасының идентификаторын қабылдайды (UI интерфейсінде таңдалған) және талап жазбасы мен оның барлық еншілес жазбаларын қайтарады.

Hinweis

Әдепкі Universal Resource Scheduling бағдарламасымен бірге жеткізілетін шектеулер сұрауын шығару Universal Resource Scheduling бағдарламасы қамтитын барлық талап шектеулеріне қолдау көрсететін үлкен көлемді сұрау болып табылады. Бұл жаттығу үшін біз тек әдепкі сұрау ішкі жиынын пайдаланамыз және тілдерді жалғыз сүзгі ретінде қосамыз.

<Languages ufx:select="lookup-to-list(Requirement/lang_primarylanguage, Requirement/lang_secondarylanguage)" />

UFX сұраулары жүйелі ретпен өңделеді. Шектеулер сұрауын шығару Requirement (msdyn_resourcerequirement) нысанын сұрау үшін FetchXML сұрауын пайдаланады және нәтижені, талап жазбасын Requirement сипатына тағайындайды. Біз шектеу сипаттары қалтасына негізгі тіл және қосымша тіл атрибуттарын нысандардың бір тізіміне (EntityCollection) біріктіретін жаңа Languages сипатын қосып жатырмыз. Бұл тілдер басқару элементін сүзгі тақтасында жазбалар тізімі ретінде көрсететіндіктен қажет. Балама ретінде екі атрибут үшін сүзгі панелінде екі бөлек басқару элементін жасауға болады.

Мынау әр element пен attribute сипаттамасы:

Атауы Сипаттамасы
Languages Нәтиже шектеулері сипатының қалтасында Languages атты жаңа сипат жасаңыз
ufx:select Осы атрибуттағы XPath өрнегінің нәтижесін Languages сипатына тағайындаңыз. Бұрын сұрауда шығарылған lang_primarylanguage мен lang_secondarylanguage сипаттары Requirement сипатында қолжетімді, олар lookup-to-list XPath мүмкіндігіне бірнеше lookup сипаттарын бір list (EntityCollection) сипатқа түрлендіретінге өткізілді

Шектеулер сұрауын шығару:

<?xml version="1.0" encoding="utf-8" ?>
<bag xmlns:ufx="https://schemas.microsoft.com/dynamics/2017/universalfetchxml">
  <Requirement ufx:source="fetch" ufx:select="bag[1]">
    <fetch top="1">
      <entity name="msdyn_resourcerequirement">
        <all-attributes />
        
        <filter>
          <condition attribute="statecode" operator="eq" value="0" />
          <condition attribute="msdyn_resourcerequirementid" operator="eq">
            <ufx:value select="$input/@ufx-id" attribute="value" />
          </condition>
        </filter>
      </entity>
    </fetch>

    <bag>
      <InitialWorkLocation ufx:select="msdyn_worklocation" />
    </bag>
  </Requirement>
  
  <Languages ufx:select="lookup-to-list(Requirement/lang_primarylanguage, Requirement/lang_secondarylanguage)" />
</bag>

Шектеулер сұрауын шығаруды жаңарту

  1. Жоғарғы оң жақта "Тіл" қойыншасын екі рет басыңыз
  2. Жоғарғы оң жақтағы Әдепкі параметрлерді ашу түймешігін басыңыз
  3. Кесте түрлері бөліміне айналдырыңыз және сол жақтағы тізімнен ешқайсысы опциясын таңдаңыз
  4. Кесте көмекшісінің шектеулер сұрауын шығару өрісін тауып, өңдегішті ашу үшін оң жақтағы түймешікті басыңыз
  5. Мән өрісін жоғарыдағы ресурстар сұрауын шығару кодымен жаңартыңыз және басқаша сақтау түймешігін басыңыз
  6. Атау өрісіне "Тіл шектеулерінің сұрауы" атауын енгізіп, Сақтау түймешігін басыңыз. Бұл жаңа конфигурация жазбасын жасайды және кесте тақтасын жазбамен байланыстырады.
  7. Кесте көмекшісінің ресурстар сұрауын шығару өрісін табыңыз және кесте тақтасының реттеулері үшін жасаған тіл ресустарының сұрауын таңдаңыз
  8. Диалогтық терезенің төменгі жағында Қолдану түймешігін басыңыз.

Тақта жаңартылған конфигурациямен қайта жүктеледі. Кесте көмекшісінің сүзгілеуі қазір жұмыс істейді. Тіл жазбаларын жасап, оларды талап жазбаларымен байланыстырған болсаңыз, онда сіз кесте тақтасының төменгі жағындағы талап жазбасын таңдай аласыз, кесте көмекшісін іске қосу үшін және тек талапта сақталған тілдерге сәйкес келетін ресурстарды көру үшін Қолжетімділікті табу түймешігін басыңыз.

Ресурс ұясы үлгісінің конфигурациясы

Tipp

Төмендегі қадамдар үшін, өзгертулерді жасау мақсатында және содан кейін өзгертулерді Universal Resource Scheduling өңдегішіне қайта қою үшін HTML синтаксис бөлектеуіне қолдау көрсететін мәтін өңдегішін пайдалану тиімді болып табылады.

Ресурс ұясы үлгісінің конфигурациясы мазмұнды ресурс ұясында көрсету үшін пайдаланылатын Handlebars үлгісі болып табылады. Ресурстар сұрауын шығару шығысы үлгі үшін қолжетімді.

Біз әдепкі ресурс үлгісін ресурс негізгі және қосымша тілдерге сәйкес келсе жасыл ✔✱ индикаторды, ресурс тек негізгі тілмен сәйкес келсе жасыл ✔ индикаторды және ресурс тек қосымша тілге сәйкес келсе сары ✔ индикаторды көрсету үшін өзгертеміз.

{{#if lang_primary}}
<span style='color:green;'>&#10004;{{#if lang_secondary}} &#10033;{{/if}}</span>
{{else if lang_secondary}}
<span style='color:#ffe700;'>&#10004;</span>
{{/if}} 

lang_primary және lang_secondary сипаттары жоғарыда орнатылған реттелетін Ресурстар сұрауын шығару сұрауынан қайтарылады. Үлгі синтаксисіндегі құжаттама туралы білу үшін Handlebars веб-сайтына өтіңіз.

Ресурс ұясының үлгісі:

<div class='resource-card-wrapper {{iif ResourceCellSelected "resource-cell-selected" ""}} {{iif ResourceUnavailable "resource-unavailable" ""}} {{iif IsMatchingAvailability "availability-match" ""}}'>
  {{#if imagepath}}
  <img class='resource-image' src='{{client-url}}{{imagepath}}' />
  {{else}}
  <div class='resource-image unknown-resource'></div>
  {{/if}}
  <div class='resource-info'>
    <div class='resource-name primary-text ellipsis' title='{{name}}'>{{name}}</div>
    <div class='secondary-text ellipsis'>
      {{#if (eq (is-sa-grid-view) false) }}
      <div class='booked-duration'>{{BookedDuration}}</div>
      <div class='booked-percentage'>
        {{BookedPercentage}}%
        
        {{#if lang_primary}}
        <span style='color:green;'>&#10004;{{#if lang_secondary}} &#10033;{{/if}}</span>
        {{else if lang_secondary}}
        <span style='color:#ffe700;'>&#10004;</span>
        {{/if}}            
      </div>
      {{/if}}
    </div>
    {{#if (eq (is-sa-grid-view) false) }}
    <div class='matching-indicator'></div>
    {{/if}}
  </div>
  {{#if (eq (is-sa-grid-view) false) }}
  {{> resource-map-pin-template this }}
  {{/if}}
</div>

Ресурс ұясының үлгісін жаңарту

  1. Жоғарғы оң жақта "Тіл" қойыншасын екі рет басыңыз
  2. Жоғарғы оң жақтағы Әдепкі параметрлерді ашу түймешігін басыңыз
  3. Кесте түрлері бөліміне айналдырыңыз және сол жақтағы тізімнен ешқайсысы опциясын таңдаңыз
  4. Кесте көмекшісінің ресурс ұясының үлгісі өрісін тауып, өңдегішті ашу үшін оң жақтағы түймешікті басыңыз
  5. Мән өрісін жоғарыдағы ресурс ұясының үлгісі кодымен жаңартыңыз және басқаша сақтау түймешігін басыңыз
  6. Атау өрісіне "Ресурс ұясының үлгісі" атауын енгізіп, Сақтау түймешігін басыңыз. Бұл жаңа конфигурация жазбасын жасайды және кесте тақтасын жазбамен байланыстырады.
  7. Диалогтық терезенің төменгі жағында Қолдану түймешігін басыңыз.

Тақта жаңартылған конфигурациямен қайта жүктеледі. Ресурс ұясында ресурстың сүзгі панеліндегі тіл шектеуіне сәйкестігі көрсетіледі.

Жиынтығы

Жоғарыдағы қадамдарда біз тіл нысаны үшін сүзгі басқару элементін көрсету үшін кесте көмекшісіндегі сүзгі тақтасын өзгерттік. Сондай-ақ талап нысанына қатысты жаңа тіл атрибуттарын сұрау үшін және оларды тізім ретінде қалыптастыру үшін шектеулер сұрауын шығаруды өзгерттік. Пайдаланушы талап жазбасына арналған қолжетімділікті табу опциясын таңдаған кезде, сүзгі тақтасы жазылған тіл шектеулерін көрсетеді. Сүзгі тақтасындағы мәндер ресурстар сұрауын шығаруға өткізіледі және FetchXML сұрауы тек сәйкес ресурстарды ғана қайтарады.

Сондай-ақ келесіні қараңыз

Әмбебап Fetch XML

Universal Resource Scheduling кеңейтімділігі шығарылымы ескертпелері

Hinweis

Сіз құжат тіліңіздің артықшылықтары туралы айта аласыз ба? Қысқа сауалнамаға қатысыңыз. (бұл сауалнама ағылшын тілінде екеніне назар аударыңыз)

Сауалнама шамамен жеті минут уақытыңызды алады. Жеке деректер жиналмайды (құпиялылық туралы мәлімдеме).