10

以下の関数を使用して例外が発生した人はいますか?

tdse.GetObject(tmpFolderWebDavURL, EnumOpenMode.OpenModeView, null,
                                          XMLReadFilter.XMLReadAll) as Folder;

webdav の最後のセグメントにドットが含まれている場合、メソッドは例外をスローします。

例えば

tmpFolderWebDavURL = "/webdav/test_publication/2.2 folder name"-スローされた例外に失敗する

tmpFolderWebDavURL = "/webdav/test_publication/22 folder name"-作品

tmpFolderWebDavURL = "/webdav/test_publication/2.2 folder name/sub_folder"-作品

例外

<?xml version="1.0"?>
<tcm:Error xmlns:tcm="http://www.tridion.com/ContentManager/5.0" ErrorCode="80040200" Category="4" Source="Kernel" Severity="2">
    <tcm:Line ErrorCode="80040200" Cause="false" MessageID="15301">
        <![CDATA[Unable to get TOM object for URI: /webdav/TPMG Medical Library Content/Building Blocks/Content Live/2.2 People Lists]]>
        <tcm:Token>/webdav/TPMG Medical Library Content/Building Blocks/Content Live/2.2 People Lists</tcm:Token>
    </tcm:Line>
    <tcm:Line ErrorCode="80040200" Cause="true" MessageID="15748">
        <![CDATA[Unable to map all paths to URIs.]]>
    </tcm:Line>
    <tcm:Details>
        <tcm:CallStack>
            <tcm:Location>SystemDAL.GetURIsFromPaths</tcm:Location>
            <tcm:Location>SystemDAL.GetURIsFromPaths</tcm:Location>
            <tcm:Location>URLConversion.ConvertURLToURI</tcm:Location>
            <tcm:Location>SystemBLST.IBLSystemST_ConvertURLToURI</tcm:Location>
            <tcm:Location>TDSE.GetObject</tcm:Location>
        </tcm:CallStack>
    </tcm:Details>
</tcm:Error>
4

3 に答える 3

8

スペースの場合と同様に、ドットはwebdavURLでエスケープする必要があります。

したがって、スペースは「%20」になり、ドットは「%2E」になります。やってみてくださいtmpFolderWebDavURL.Replace(".", "%2E")

于 2012-04-10T21:08:25.140 に答える
2

これは、この種の開発を行うときはいつでも powershell を開いたままにしておくもう 1 つの理由です。

アイテムの tcm uri を知っていると仮定すると、正しい WebDAVURL を非常に簡単に取得できます。

> $tdse = new-object -com TDS.TDSE
> $sch = $tdse.GetObject("tcm:3-92723-8",1)
> $sch.info.WebDAVURL
/webdav/00_Schemas_003/Building%20Blocks/Schemas/Component/ComponentStaffItem.xsd

すばやくコピーして貼り付ければ完了です。

于 2012-04-11T18:00:30.653 に答える
1

「。」を置き換える代わりに。"%2E" では、Url Encoding を使用することをお勧めします。Tridion は、webdav の URL からアイテムを解決しながら、URL をデコードします。

それを Tridion に送信する前に、URL エンコーディングを使用することは常に安全です。

于 2012-04-17T07:39:36.870 に答える