SSAS では、Visual Studio からディメンションを手動で処理するときに、ディメンション キー エラーを無視するオプションがあります。しかし、大量のビンジングとグーグル検索にもかかわらず、XMLA スクリプトでこれに相当するものは見当たりませんでした。可能であれば、親切に助けてください。
2 に答える
XMLAスクリプトは、オプションで処理したい次元/事実/データベースについて言及するだけです。残りのキューブのすべての設定 (例: 重複キーを無視) は、キューブ自体から継承されます。したがって、SSAS キューブでこれらのプロパティを設定した場合は、処理されます。ただし、各ディメンションを個別に処理して、XMLA を介して他の重要な関連の問題を回避できますが、簡単ではありません。各ディメンションの XMLA スクリプトを取得する必要があります。例:
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<Parallel>
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
<Object>
<DatabaseID>Database_Name</DatabaseID>
<DimensionID>Dimension_Name</DimensionID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Parallel>
</Batch>
基本的に、SSAS キューブ自体からのディメンション キー エラーは回避できます。たとえば、テーブルに NULL と空白の両方があると、重複エラーが発生します。
アップデート
[データベース] > [プロセス] > [設定の変更]に移動して、ディメンションの設定を変更できます。
次に、ディメンション キーのエラー タブをクリックし、目的の値を設定します。
完了したら、[OK] をクリックし、スクリプトをクリックして、関連する XMLA スクリプトを生成します。
XMLA には、選択した値を持つErrorConfigurationノードが含まれていることがわかります。
XMLA - ReportAndStop
<Batch xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<ErrorConfiguration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
<KeyErrorLimit>2</KeyErrorLimit>
<KeyErrorLimitAction>StopLogging</KeyErrorLimitAction>
<KeyNotFound>ReportAndStop</KeyNotFound>
<KeyDuplicate>ReportAndStop</KeyDuplicate>
<NullKeyConvertedToUnknown>ReportAndStop</NullKeyConvertedToUnknown>
<NullKeyNotAllowed>ReportAndStop</NullKeyNotAllowed>
</ErrorConfiguration>
<Parallel>
<Process xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:ddl100_100="http://schemas.microsoft.com/analysisservices/2008/engine/100/100" xmlns:ddl200="http://schemas.microsoft.com/analysisservices/2010/engine/200" xmlns:ddl200_200="http://schemas.microsoft.com/analysisservices/2010/engine/200/200" xmlns:ddl300="http://schemas.microsoft.com/analysisservices/2011/engine/300" xmlns:ddl300_300="http://schemas.microsoft.com/analysisservices/2011/engine/300/300">
<Object>
<DatabaseID>Database_Name</DatabaseID>
</Object>
<Type>ProcessFull</Type>
<WriteBackTableCreation>UseExisting</WriteBackTableCreation>
</Process>
</Parallel>
</Batch>
すべてのデフォルトを他の値に変更して同じものを生成し、XMLA を取得したら、必要な値を指定することもできます。