4

PROC SOAP 経由で SAS (9.3) を使用して Sharepoint (2007) リストを更新しようとしています (SAS は Unix GRID 上に存在します)。sharepoint サイトでは基本認証が有効になっています (PROC SOAP は NTLM を介して認証できないため)。

XML Libname エンジンを使用して Sharepoint リストからデータを正常に取得できますが、PROC SOAP XML データを介して Sharepoint リスト Web サービスに戻すことはできません。具体的には、共有ポイントリスト内のアイテムを追加および更新しようとしていますhttp://[intranet_site]/sites/IT/_vti_bin/Lists.asmx


SAS ログ出力:

18399  %let RESPONSE=RESPONSE;
18400  proc soap in=REQUEST
18401            out=&RESPONSE
18402            url="http://[intranet_site]/sites/IT/_vti_bin/Lists.asmx"
18403      webusername="[username]"
18404      webpassword="[password]"
18405      webdomain="[domain]"
18406      SOAPACTION="http://schemas.microsoft.com/sharepoint/soap/UpdateListItems"
18407            ;
18408  run;

ERROR: org.springframework.ws.client.WebServiceTransportException: Unauthorized [401]

SOAPUI を使用して、Lists.asmx Web サービスに渡される XML が有効であることを確認しました (SOAPUI を介して手動で実行すると、Sharepoint で期待どおりにリスト アイテムを実際に作成および更新できます。

エラーが明示的に示しているように、何らかの理由で、PROC SOAP に入力されているユーザー認証が SharePoint に反映されていません (私は SharePoint で管理者権限を持っているため、正しい権限が必要です)。これについて非常に混乱しているのは、XML Libname を介して同じ資格情報をフィードし、データをうまくプルバックできることです...


**質問**

  1. PROC SOAP を介して資格情報を渡している場合、Sharepoint に対して認証できないのはなぜですか?
  2. この XML を SharePoint に渡すための他の回避策はありますか (IE: XML LIBNAME または PROC HTTP は、XML を渡すことでこれをサポートできますか)?
  3. 問題はどこにありますか:PROC SOAPを使用したSAS(プロシージャを呼び出す方法)またはSharepointを使用した場合?


...完全を期すために、PROC SOAP に渡される XML の例を以下に示します (SOAP 1.1 - これは PROC SOAP でサポートされる必要があります)。

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <UpdateListItems xmlns="http://schemas.microsoft.com/sharepoint/soap/">
          <listName>{851DDBB5-1765-444D-9012-0210F006A4AF}</listName>
          <updates>
          <Batch OnError="Continue" ListVersion="1">
              <Method ID="1" Cmd="New">
                  <Field Name='ID'>NEW</Field>
                  <Field Name='Title'>DUMMY</Field>
                   [...shortened for space...]
              </Method>
          </Batch>
          </updates>
      </UpdateListItems>
   </soap:Body>
</soap:Envelope>
4

2 に答える 2

1

広告 1) SOAPUI を使用したテストは Windows から Windows へのテストであり、SAS を使用した状況は Unix から Windows へのテストであると想定しています。あなたの質問で SAS サポートに連絡することをお勧めします。彼らはすでに試しているはずです... また、Windows で SAS を入手して試してみることをお勧めします。unix と sharepoint で検索したところ、認証が問題の原因であるように思われるため、SAS 固有ではありません。

広告 2) XML libname は、実際には静的 xml ファイルの読み取りと書き込み用です。要求や応答はありません。PROC HTTP は SOAP を実行できません。

広告 3) きっと、問題は基本認証と Unix にあります。

于 2013-06-27T21:50:18.860 に答える