Ресурс PSI 2010 ASMX - ошибка UpdateResources

Мы пытаемся использовать интерфейс SOAP для выполнения запроса на обновление с помощью веб-служб PSI Resource ASMX. Мы просто выполняем обновление с той же информацией набора данных ресурса, полученной из вызова ReadResource.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:res="http://schemas.microsoft.com/office/project/server/webservices/Resource/">
       <soapenv:Header/>
       <soapenv:Body>
          <res:UpdateResources>
             <res:rds>
               <diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
                   <ResourceDataSet xmlns="http://schemas.microsoft.com/office/project/server/webservices/ResourceDataSet/">
                      <Resources diffgr:id="Resources1" msdata:rowOrder="0">
                         <RES_UID>a1d7467d-2a6a-4b0c-b36b-78ef5cbe3fdd</RES_UID>
                         <RES_ID>288</RES_ID>
                         <RES_TYPE>2</RES_TYPE>
                         <RES_HAS_NOTES>false</RES_HAS_NOTES>
                         <RES_CAN_LEVEL>true</RES_CAN_LEVEL>
                         <RES_ACCRUE_AT>3</RES_ACCRUE_AT>
                         <RES_BOOKING_TYPE>0</RES_BOOKING_TYPE>
                         <RES_NAME>Test</RES_NAME>
                         <RES_INITIALS>T</RES_INITIALS>
                         <RES_IS_WINDOWS_USER>false</RES_IS_WINDOWS_USER>
                         <RES_CHECKOUTDATE>2016-02-17T15:36:53.29+00:00</RES_CHECKOUTDATE>
                         <RES_TIMESHEET_MGR_UID>a1d7467d-2a6a-4b0c-b36b-78ef5cbe3fdd</RES_TIMESHEET_MGR_UID>
                         <RES_DEF_ASSN_OWNER>a1d7467d-2a6a-4b0c-b36b-78ef5cbe3fdd</RES_DEF_ASSN_OWNER>
                         <RES_IS_TEAM>false</RES_IS_TEAM>
                         <RES_EXCHANGE_SYNC>false</RES_EXCHANGE_SYNC>
                         <CREATED_DATE>2016-02-15T10:52:25.347+00:00</CREATED_DATE>
                         <MOD_DATE>2016-02-15T10:52:24.673+00:00</MOD_DATE>
                         <RES_STD_RATE_FMT>2</RES_STD_RATE_FMT>
                         <RES_OVT_RATE_FMT>2</RES_OVT_RATE_FMT>
                         <RES_STD_RATE>0.000000</RES_STD_RATE>
                         <RES_OVT_RATE>0.000000</RES_OVT_RATE>
                         <RES_MAX_UNITS>10000.000000</RES_MAX_UNITS>
                         <RES_PREVENT_ADSYNC>false</RES_PREVENT_ADSYNC>
                         <RES_COST_PER_USE>0.000000</RES_COST_PER_USE>
                         <BaseCalendarUniqueId>6578a6ed-4cc2-48e1-84a6-02ac9583d5db</BaseCalendarUniqueId>
                      </Resources>
                      <ResourceRates diffgr:id="ResourceRates1" msdata:rowOrder="0">
                         <RES_UID>a1d7467d-2a6a-4b0c-b36b-78ef5cbe3fdd</RES_UID>
                         <RES_RATE_TABLE>0</RES_RATE_TABLE>
                         <RES_STD_RATE>0</RES_STD_RATE>
                         <RES_OVT_RATE>0</RES_OVT_RATE>
                         <RES_COST_PER_USE>0</RES_COST_PER_USE>
                      </ResourceRates>
                      <ResourceAvailabilities diffgr:id="ResourceAvailabilities1" msdata:rowOrder="0">
                         <RES_UID>a1d7467d-2a6a-4b0c-b36b-78ef5cbe3fdd</RES_UID>
                         <RES_AVAIL_UNITS>100</RES_AVAIL_UNITS>
                      </ResourceAvailabilities>
                   </ResourceDataSet>
                   </diffgr:diffgram>
             </res:rds>
             <res:validateOnly>true</res:validateOnly>
             <res:autoCheckIn>false</res:autoCheckIn>
          </res:UpdateResources>
       </soapenv:Body>
    </soapenv:Envelope>

Я получил этот ответ от сервера.

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <s:Fault>
         <faultcode>s:Server</faultcode>
         <faultstring xml:lang="en-US">ProjectServerError(s) LastError=GeneralUnhandledException Instructions: Pass this into PSClientError constructor to access all error information</faultstring>
         <detail>
            <errinfo>
               <general>
                  <class name="An unhandled exception occurred in Microsoft.Office.Project.Server.BusinessLayer.Resource.UpdateResources.">
                     <error id="42" name="GeneralUnhandledException" uid="362c7b0b-6b4f-45c2-9b4a-640623dd7560" Exception="System.NullReferenceException: Object reference not set to an instance of an object.
   at Microsoft.Office.Project.Server.BusinessLayer.Resource.DataSetHasMsxColumns(ResourceDataSet resourceDataSet)
   at Microsoft.Office.Project.Server.BusinessLayer.Resource.UpdateResources(ResourceDataSet rds, Boolean validateOnly, Boolean autoCheckIn)
   at Microsoft.Office.Project.Server.Wcf.Implementation.ResourceImpl.UpdateResources(ResourceDataSet rds, Boolean validateOnly, Boolean autoCheckIn)"/>
                  </class>
               </general>
            </errinfo>
         </detail>
      </s:Fault>
   </s:Body>
</s:Envelope>

Исключение является общим, но кто-нибудь знает, что здесь может быть не так? вызываемый метод не имеет документации (DataSetHasMsxColumns), но имя может быть полезным для кого-то, кто работал с сервисами.

Спасибо заранее С наилучшими пожеланиями

0 ответов

Другие вопросы по тегам