次の方法で共有


Excel エクスペリエンスで開くに関する FAQ

次の Dynamics 365 アプリに適用:
Commerce、Finance、Human Resources、Supply Chain Management

重要

Human Resources を使用している顧客の場合、この記事で説明した機能は、現在、スタンドアロン Dynamics 365 Human Resources とマージした Finance インフラストラクチャの両方で利用できます。 更新中は、記載されたナビゲーションと異なる場合があります。 特定のページを検索する場合は、検索を使用できます。

Excel と Word を Office エクスペリエンスで開く機能について学んで作成します。

[Excel で開く] エクスペリエンスとは

「Excel で開く」エクスペリエンスは:

  • エンティティと作成した OData サービスに基づいています。
  • 動的に生成されるか、あらかじめ定義されたテンプレートに基づきます。
  • Excel アドインを使用して、編集および更新が可能です。

次の図は、Excel アドイン が仕訳入力に使用されている様子を示しています。

Excel アドインの例。

[Excel で開く] エクスペリエンスが存在する場所は

Excel で開くエクスペリエンスは、通常Microsoft Office で開くメニューのExcel で開くセクションの下にありますが、これらのエクスペリエンスには明示的なボタンを追加することができます。

"Excel にエクスポート" と "Excel で開く" の違い

Excel にエクスポート オプションおよびエクスペリエンスは、どちらも Microsoft Office で開くメニューにあります。

  • Excel にエクスポート オプションは、グリッド データの静的エクスポートです。 それぞれ表示されているグリッドに対応しています。 現在のフィルター内にあるすべてのグリッド データはブックに格納されます。
  • [Excel で開く] エクスペリエンスは、Excel アドインを利用して更新と公開を行います。

次の図は、フリート顧客フォームの Microsoft Office で開くメニューをテンプレート Excel で開くオプション、生成された Excel で開くオプション、および静的な Excel にエクスポートオプションと共に示しています。

Microsoft Office メニューで開きます。

エンティティはいつ [Excel で開く] オプションとして表示されますか ?

エンティティにフォームと同じルート データ ソース (テーブル) が存在するとき、そのデータソースは、Microsoft Office で開くメニューの Excel で開くセクションのオプションとして追加されます。 これは、「生成済み」オプションと呼ばれます。

メモ

このオプションを「Excel で開く」メニューに表示するには、ユーザーが基本的なエンティティに対するセキュリティ アクセス権を持っている必要があります。 詳細については、セキュリティとデータ エンティティ を参照してください。

ブックに何というフィールドが表示されますか ?

ワークブックに追加される既定のフィールドは、エンティティのキー フィールドと必須フィールドです。 デフォルトで別のフィールドセットを提供する必要がある場合は、これらのフィールドをエンティティの自動レポートのフィールド グループに追加できます。 次の図は、FMCustomerEntity の AutoReport フィールド グループの Visual Studio ビューを示しています。

AutoReport フィールド グループの Visual Studio ビュー。

エンティティが検索の対象のとき、何というフィールドが表示されますか ?

2 つのエンティティ間のリレーションシップが定義されると、1 つのエンティティの識別子が他のエンティティに表示されている場合、そのルックアップに表示されるフィールドは、キー フィールドであるか、または AutoLookup フィールド グループ が空でない場合はそのグループ内のフィールドです。 関係の参照は現在サポートされていませんが、最終的に列挙のルックアップを同様の方法でアプリに表示されます。 列挙ルックアップを持つ Excel アドインを次に示します。

列挙型ルックアップによる Excel アドイン。

エンティティを Excel で使用できるようにするには何を行う必要がありますか ?

AutoReport および AutoLookup フィールド グループを定義し、Excel アプリ デザイン エクスペリエンスを使用してテストします。

自動的に追加されたエンティティ オプションでエンティティ名の後に「(フィルターなし)」と表示されるのはなぜですか。

現在、フィルターはこれらのオプションに追加されないため、「(フィルターなし)」という用語になります。 今後、フォームからこれらのオプションへのフィルターの適用が試行されます。 たとえば、顧客の一覧がカリフォルニア州で顧客だけにフィルター処理された場合、今後エンティティは州フィールドに対してスキャンされ、見つかるとフィルターは自動で追加されます。

同じルート データソースを共有しないフォーム上で、Excel で開くオプションとしてエンティティを追加するにはどうしたらいいですか。

生成された Excel で開くオプションは、OfficeIGeneratedWorkbookCustomExporter インターフェイスを実装することにより、任意のフォームに追加できます。 生成されたオプションをプログラムで追加するとき、一組のフィールドを明示的に指定できます。 詳細については、インターフェイスを通じた Office で開くメニューの変更を参照してください。

エンティティを定義するための地域固有の考慮事項

[Excel で開く] により生成されたエクスペリエンスは、AutoLookup グループに地域固有のフィールドを追加することで地域固有にできます。 これらの領域固有のフィールドは、生成されたワークブックに含まれます。

Excel でのエンティティ フィールドに対してどのようにカスタム ルックアップを作成しますか。

カスタム ルックアップでは、エンティティ フィールドを表示できます。

  • 名前 - メソッドには、「lookup_<fieldname>」の名前が必要です。例: フィールド「MyField」は、ルックアップ メソッド「lookup_MyField」とすることができます。
  • 属性 – 属性をメソッドに追加する必要があります。
    • SysODataActionAttribute(str <name>, Boolean <isInstanceMethod>)
    • SysODataCollectionAttribute(str <name>, Types <type>, “Value”)
  • 戻り値: メソッドは、文字列のリストを返す必要があります。

public class ExportToExcel_SimpleEntity extends common
{
    [SysODataActionAttribute("Lookup_StringLookupField", true),
    SysODataCollectionAttribute("return", Types::String, "Value")]
    public List lookup_StringLookupField()
    {
        List lookupList = new List(Types::String);
        const int items = 5;

        for (int item = 0; item < items; item++)
        {
            lookupList.addEnd(strfmt('%1 - %2 (%3)', this.StringField, this.IntField, item));
        }

        return lookupList;
    }
}

アプリはどのようにテンプレートの構築を開始するブックに挿入されますか。

Excel アドインは、生成された [Excel で開く] エクスペリエンスがトリガーされたとき、または一般>一般>Office 統合>Excel ブック デザイナー フォームを使用してブックが作成されたときに、ブックに挿入されます。

  • ブックの作成 ボタンは、選択したエンティティおよびフィールド、ポインターをサーバーに、アプリをブックに追加します。
  • 空白ブックの作成 ボタンは、ポインターをサーバーに、アプリをブックにそのまま追加します。
  • ビュー関連 フォームは、Excel で加えられたデータの変更の影響をより簡単に確認するため、現在選択されているエンティティに関連するフォームに移動します。
  • エンティティ レコード数を取得 ボタンは、現在選択されているエンティティのレコード数を表示します。 Excel アドインは、ユーザーのコンピューターのメモリ制限内の大量のデータを処理します。 既定の Excel アドインにはデータ サイズが 100 万個のセルに制限されるデータ ガバナーがありますが、ユーザーのコンピューターの性能に応じて通常 250 万個程度のセルに拡張できます。

次の図は、Excel ブック デザイナー フォームを示しています。

Excel ブック デザイナー フォーム。

Excel アドインを含むワークブックを取得すると、追加のデータソースは、デザイン ボタンを使用して追加することができます。 現在、データ ソースを削除することはできません。

テンプレートはいつ [Excel で開く] オプションとして表示されますか ?

共通>共通>Office 統合>ドキュメント テンプレート フォーム (DocuTemplate) に表示されているテンプレートで、ShowInOpenInOfficeMenu が "はい" に設定されていて、ルート データ ソース (テーブル) が現在のフォームと同じとき、そのテンプレートは、Microsoft Office で開くメニューの Excel で開くセクションのオプションとして追加されます。 次の図は、ドキュメント テンプレート フォームを示しています。

ドキュメント テンプレート フォーム。

フィルターはテンプレートに追加されますか。

ドキュメント テンプレート フォームでは、「現在のレコード」の標準フィルターを有効または無効にします。 テンプレートが Excel で開くオプションとして呼び出されたときにフィルターがオンになっている場合、現在のレコードのフィルターがワークブックに追加されます。 フィルターはキー フィールドとその値になります。

テンプレートはどのようにメタデータとコードで定義されるおよび自動的に読み込まれますか。

ドキュメント テンプレートの フォームにテンプレートを追加するとき、それはそのインスタンスに追加され、「ユーザー定義」のテンプレートと呼ばれます。 テンプレートは、メタデータおよびコードで定義することもでき、自動的に読み込まれるため、「システム定義」のテンプレートになります。 メタデータとコードを使用してシステム定義のテンプレートを作成するには、以下を実行する必要があります。

  • テンプレートの定義。
  • プロジェクトに新しいリソースを作成します。
  • DocuTemplateRegistrationBase クラスを拡張する新しいクラスを定義し、registerTemplates メソッドの実装を追加します。

LedgerJournalLineEntryTemplateRegistration および FMTemplateRegistrations クラスは、コードで定義されたテンプレート登録の良い例です。 LedgerJournalLineEntryTemplate および FMTemplateCustomersWithLocations リソースは、リソースとしてメタデータに格納された対応するテンプレートです。 テンプレートに登録クラスが存在するとき、そのテンプレートは、ドキュメント テンプレート フォームの システム テンプレートの再読み込み ボタンがクリックされたときに読み込まれます。

テンプレートはどのように新しい展開に読み込まれますか?

システム定義のテンプレートを読み込むには、次に示すように、一般>一般>Office 統合>ドキュメント テンプレート フォームのシステム テンプレートを再読込みボタンをクリックします。

システム テンプレート ボタンを再読み込みする。

今後、配置の際にそのボタンのクリックに相当する操作を実行します。

テンプレートを作成する必要があるかどうかをどのように決定しますか。

テンプレートは、管理とバージョン管理する必要なコンポーネントです。 ユーザー エクスペリエンスを低下させることがなく、テンプレートを定義することを避けることができれば、おそらくテンプレートを使用する必要があります。 次の場合にテンプレートを作成します。

  • テンプレートに追加のコンテンツまたは書式が必要な場合。
  • 同じブック内の複数のエンティティとデータ ソースを結合する必要があります。

テンプレートを作成しない場合:

  • テーブル バインドに表示するフィールドのセットを指定するだけです。

テンプレートのための地域固有の考慮事項

地域固有フィールドを持つエンティティのテンプレートを作成するとき、テンプレートからそれらの地域固有フィールドを除外する必要があります。そうしない場合、すべてのユーザーに地域固有フィールドが表示されます。 テンプレートは、ユーザーの大半に既定で提供される必要があり、地域に固有のユーザーは Excel アドインの使いやすいデザイン エクスペリエンスを使用してこれらのフィールドを追加できます。 必要に応じて、ユーザーはリージョン固有のフィールドと列を追加できます。 そのテンプレートは、1 人のユーザーが再利用するためにローカル コンピューターに保存するか、そのインスタンスの任意のユーザーが再利用するためにドキュメント テンプレートを通じてアップロードすることができます。 いくつかの他の考慮事項。

  • 領域に領域固有のエンティティがある場合、領域固有のテンプレートを作成できます。
  • 地域が十分に重要な場合は、地域固有テンプレートと地域汎用テンプレートを定義できます。

テンプレート Excel を開くオプションに明示的なボタンを追加する方法がありますか。

Excel で開くエクスペリエンスに明示的なボタンを追加できます。 ボタンに表示されるラベルは、通常、「Excel で開くターゲット」である必要があります。ターゲットは、「明細行」や「カタログ」などのターゲット データの名前です。 そのようなボタンの背後にあるコードは次のようになります:

  • 使用されるテンプレートを取得します。
  • フィルターを追加します。
  • テンプレートをユーザーに渡します。

このコードの例としては、LedgerJournalTable フォーム (総勘定元帳>仕訳帳>一般仕訳帳) のクリック済みメソッド内の OpenLinesInExcel ボタン上で見つけることができます。

[Control("Button")]
class OpenLinesInExcel
{

    /// <summary>
    /// Opens the current journal in Excel for line entry and editing
    /// </summary>
    public void clicked()
    {
        super();

        const str templateName = resourceStr(LedgerJournalLineEntryTemplate);
                DocuTemplate template = DocuTemplate::findTemplate(OfficeAppApplicationType::Excel, templateName);

        // Ensure the template was present
        if (template && template.TemplateID == templateName)
        {
            Map filtersToApply = new Map(Types::String, Types::String);

            // Create lines filter
            ExportToExcelFilterBuilder filterBuilder = new ExportToExcelFilterBuilder(tablestr(LedgerJournalLineEntity));
            str filterString = filterBuilder.areEqual(fieldstr(LedgerJournalLineEntity, JournalBatchNumber), LedgerJournalTable.JournalNum);
            filtersToApply.insert(tablestr(LedgerJournalLineEntity), filterString);

            // Create header filter
            filterBuilder = new ExportToExcelFilterBuilder(tablestr(LedgerJournalHeaderEntity));
            filterString = filterBuilder.areEqual(fieldstr(LedgerJournalHeaderEntity, JournalBatchNumber), LedgerJournalTable.JournalNum);
            filtersToApply.insert(tablestr(LedgerJournalHeaderEntity), filterString);

            // Generate the workbook using the template and filters
            DocuTemplateRender renderer = new DocuTemplateRender();
            str documentUrl = renderer.renderTemplateToStorage(template, filtersToApply);

            // Pass the workbook to the user
            if (documentUrl)
            {
                Browser b = new Browser();
                b.navigate(documentUrl, false, false);
            }
            else
            {
                error(strFmt("@ApplicationFoundation:DocuTemplateGenerationFailed", templateName));
            }
        }
        else
        {
            warning(strFmt("@ApplicationFoundation:DocuTemplateNotFound", templateName));
        }
    }

}

次の図は、総勘定元帳>仕訳帳>一般仕訳帳フォームを強調表示された Excel で明細行を開くボタンと共に示しています。

Excel ボタンで開いた明細行を強調表示する。

作成された Open in Excel オプションとテンプレートの Open in Excel オプションをプログラムで追加するには、ExportToExcelIGeneratedCustomExport および ExportToExcelITemplateCustomExport インターフェイスを実装して、Open in Excel オプションを追加します。 これにより、エンティティまたはテンプレートがルート データ ソースと同じテーブルを持たないフォームにオプションを追加できます。 この機能を使用する場合の例としてはデータソースのないフォーム、フォーム パーツのコレクションのみを含む可能性があります。 次の例では、FMRental フォームに、生成されたテンプレートと ExcelのOpen in Excel オプションをプログラムによって追加します。

[Form]
public class FMRental extends FormRun implements ExportToExcelIGeneratedCustomExport, ExportToExcelITemplateCustomExport
{    
...

    public List getExportOptions()
    {
        List exportOptions = new List(Types::Class);

        ExportToExcelExportOption exportOption = ExportToExcelExportOption::construct(ExportToExcelExportType::CustomGenerated, int2str(1));
        exportOption.setDisplayNameWithDataEntity(tablestr(FMRentalEntity));
        exportOptions.addEnd(exportOption);

        ExportToExcelExportOption exportOption2 = ExportToExcelExportOption::construct(ExportToExcelExportType::CustomTemplate, int2str(2));
        exportOption2.displayName("Analyze rentals");
        exportOptions.addEnd(exportOption2);

        return exportOptions;
    }

    public ExportToExcelDataEntityContext getDataEntityContext(ExportToExcelExportOption _exportOption)
    {
        ExportToExcelDataEntityContext context = null;

        if (_exportOption.id() == int2str(1))
        {
            context = ExportToExcelDataEntityContext::construct(tablestr(FMRentalEntity), tablefieldgroupstr(FMRentalEntity, AutoReport));
        }

        return context;
    }

    public System.IO.Stream getTemplate(ExportToExcelExportOption _exportOption)
    {
        System.IO.Stream stream = null;

        if (_exportOption.id() == int2str(2))
        {
            stream = Microsoft.Dynamics.Ax.Xpp.MetadataSupport::GetResourceContentStream(resourcestr(FMRentalEditableExportTemplate));
        }

        return stream;
    }

    public void updateTemplateSettings(ExportToExcelExportOption _exportOption, Microsoft.Dynamics.Platform.Integration.Office.ExportToExcelHelper.SettingsEditor _settingsEditor)
    {
    }
...

プログラムにより追加するテンプレート Excel を開くオプション用のフィルターを追加する方法がありますか。

Excel で開く オプション テンプレートは、ExportToExcelITemplateCustomExport インターフェイスを実装し、getTemplate メソッドでテンプレートを提供することで、プログラムにより追加できます。 このオプションのフィルターは、updateTemplateSettings メソッドの ExportToExcelFilterBuilder API を使用してプログラムで追加できます。

public void updateTemplateSettings(ExportToExcelExportOption _exportOption, Microsoft.Dynamics.Platform.Integration.Office.ExportToExcelHelper.SettingsEditor _settingsEditor)

{

_settingsEditor.SetFilterExpression(tableStr(RetailTmpBulkProductAttributeValueEntity), element.getExportToExcelFilterExpression());

DictDataEntity dictDataEntity = new DictDataEntity(tableNum(RetailTmpBulkProductAttributeValueEntity));

_settingsEditor.SetFilterExpressionByPublicName(dictDataEntity.publicEntityName(), element.getExportToExcelFilterExpression());

}

フィルターがプログラムで追加された後、結果のフィルターは、フィルター ボタンを使用して Excel アドインで表示できます。 次の図は、フィルター ボタンが強調表示された Excel アドインを示しています。

強調表示されたフィルター ボタン。

次の図は、フィルター ダイアログ ボックスが強調表示された Excel アドインを示しています。

開いたフィルター ダイアログ ボックス。

Excel でリレーションシップ ルックアップをどのように有効にしますか。

Excel データ コネクタでリレーションシップ ルックアップを有効にするには、次のメタデータが設定されていることを確認する必要があります。

  • 関係で定義されているロールと関連データ エンティティ ロールは、ソースおよびターゲット エンティティの両方のすべての関係間で一意である必要があります。 また、リレーション ロールのプロパティはすべてのエンティティで一意である必要があります。 これは、DimensionCombinationEntity など多くのリレーションシップを持つエンティティのリレーションシップにとって特に重要です。 予想されるルックアップが表示されない場合は、ロール名を次の形式に変更してみます。

    • ロール: [このエンティティのパブリック名] + [ターゲット エンティティのパブリック名] + [ターゲット エンティティ フィールド] + 「ソース」

    • 関連データ エンティティ ロール: [このエンティティのパブリック名] + [ターゲット エンティティのパブリック名] + [ターゲット エンティティ フィールド] + 「ターゲット」

    • カーディナリティと関連データ エンティティ カーディナリティは、適切に設定する必要があります。

    • 少なくとも 1 つの制約がリレーションシップに追加される必要があます。 特殊なケースである、分析コード関係の例外により、制約されたプロパティは両方とも公開する必要があります。

ブック内の明細行と共に新しいヘッダー レコードを作成するユーザーをどのように有効にできますか。

ヘッダー レコードと関連行の作成を有効にするには、ヘッダー データソースを「フィールド」のセットとして追加し、行データ ソースを関連テーブルとして追加する必要があります。 このパターンは、仕訳入力などの文書データ入力シナリオでうまく機能します。

ヘッダー レコードと関連行の詳細については、短いビデオ Dynamics 365 Finance でヘッダーと明細行パターンの Excel テンプレートを作成するをご覧ください。

ヘッダーの作成を有効にするヘッダー フィールドと行テーブルを含むブックを設計するには、次の手順を実行します。

  1. Excel アドインで、デザインをクリックしてデザイナーを開きます。 フィールドを追加 を選択してヘッダー データ ソースを追加します。
  2. 使用するヘッダー フィールドを選択します。 すべてのキー フィールドを含めるか、新規ボタンを有効にしないでください。
  3. すべての文字列ヘッダー値フィールドでは、ドロップダウン メニューの形式で Excel リボン > ホーム タブ > 番号グループ > 「数値」の設定を使用するそのセルの「テキスト」形式を手動で適用します。 文字列フィールドにテキスト形式が手動で設定されておらず、"00045" のような先行ゼロの文字列値がある場合、Excel は自動的に "45" に変更し、"PurchaseOrderHeader の PurchaseOrderNumber フィールドの値はキー フィールドであるため変更できません" というようなエラーが表示されます。 現在、API を個々のセル (対応するテーブルの列) にテキスト形式を自動的に適用することはできません。
  4. デザイナーのヘッダー データ ソースで、2 つのプラス アイコンで表された関連するテーブルの追加ボタンをクリックします。
  5. 使用する行フィールドを選択します。

関連するテーブル データ ソースのヘッダー データ ソースの例を次に示します。

  • PurchaseOrderHeader (フィールド)
    • dataAreaId
    • PurchaseOrderNumber
    • PurchaseOrderName
    • OrderVendorAccountNumber
  • PurchaseOrderLine (テーブル - 関連)
    • LineNumber
    • ItemNumber
    • LineDescription
    • OrderedPurchaseQuantity
    • LineAmount

ヘッダーと明細行のブックを使用して、新しいヘッダーと明細行を作成するには、次の手順を実行します。

  1. ブック内で、ヘッダーの値を持つセルにフォーカスを移動します。
  2. Excel アドインで新規をクリックします。
  3. 必要に応じて、値のヘッダーと明細行を入力します。
  4. 公開を選択します。

既存のテンプレート ブック内で、どのようにフィールドを追加、削除、または移動できますか。

ドキュメント テンプレートで保存されるワークブックを編集することによって、既存のテンプレート ワークブックにフィールドを追加することができます。

  1. 元のテンプレート ブックを取得します。
    1. ドキュメント テンプレートフォームを開きます。
    2. 既存のテンプレート ワークブックを検索します。
    3. ブックをダウンロードします。
    4. ブックを開いて、Excel アドインが実行されるように編集を有効にします。
  2. テンプレートに変更を加えます。
    1. Excel アドインでデザインを選択します。
    2. フィールドを追加するデータソースの横にある編集ボタン (鉛筆アイコン) をクリックします。
    3. 利用可能なフィールド リストから選択されたフィールド リストに移動して、フィールドを追加します。 フィールドをダブルクリックすると移動します。 選択したフィールド ボックスの一覧から 使用可能なフィールド ボックスの一覧にフィールドを移動して削除します。上へ および 下へ ボタンを使ってフィールドを移動します。
    4. 変更が完了したら、更新を選択して、はいを選択して確定し、完了を選択してデザイナーを終了します (必要に応じて、更新を選択して、データが正しく入力されていることを確認します)。
    5. アップロードする前にオプション (ギア アイコン) をクリックし、データ コネクタ セクションを展開し、バインディング データのクリア ボタンをクリックしてテンプレートのデータを消去します
    6. 名前を付けて保存 を使用して、テンプレートを一時的にどこかに保存します。
  3. 変更したテンプレートをアップロードします。
    1. ドキュメント テンプレート フォームに戻り、変更されたテンプレートをアップロードします。
    2. 新規をクリックして表示し、変更されたテンプレートを検索します。
    3. 保存されたテンプレート ファイルを選択してから、開く をクリックします。
    4. テンプレートのアップロード ダイアログ ボックスで、名前からアンダースコアと末尾のランダムな数字を削除します。たとえば「CustInvoiceJournalTemplate_636564840743000567」は、「CustInvoiceJournalTemplate」になります。
    5. 確認ダイアログボックスに「この名前のテンプレートが既に存在します ...」と表示されたら、はいをクリックして前のテンプレートの置換を確認します。 この確認が表示されない場合、テンプレート名が異なっており、新しいテンプレートとしてアップロードされていることに注意してください。
  4. テンプレートが使用されるフォームを開いて、変更されたテンプレートを使用します。

トラブルシューティング

予想されるルックアップを参照しない場合は、[YourSiteURL]/data/$metadata で利用できるメタデータ フィードを確認して、リレーションシップ メタデータを検証します。 エンティティのパブリック名の $metadat フィードを検索してその EntityType 要素を検索し、関係のロールの値と同じ名前を持つ子 NavigationProperty 要素があることを確認します。 ナビゲーション プロパティが存在する場合、Excel データ コネクターが使用され、関係の参照を表示します。 ルックアップは、次の条件下では表示されません。

  • エンティティのすべてのキー フィールドは関係の中に制約として含まれています。
  • 選択されたフィールドはキーであり、選択されたレコードは新規ではありません。
  • 認証されたユーザーには、ルックアップの対象となるエンティティにアクセスするためのアクセス許可がありません。

分析コードはどのように機能しますか。

データ エンティティに分析コード メタデータを設定する最も簡単な方法は、データ エンティティ作成ウィザードを使用することで、これにより、分析コード フレームワークが必要とするものとまったく同じプライベート リレーションシップおよび公開表示値フィールドが自動的に作成されます。 分析コードの設定をカスタマイズする場合は、 Excel テンプレートへの分析コードの追加 を参照します。 ルックアップは非元帳分析コードに対してのみ自動的に生成されます。 カスタム分析コードは現在サポートされていません。 勘定分析コード (MainAccount、Department、CostCenter など) のルックアップを有効にする場合は、DimensionCombationEntity および DimensionSetEntity フィールドのリレーションシップの作成に関するガイダンスについては、 Excel テンプレートへの分析コードの追加 を参照します。 これらのリレーションシップが存在するときは、Excel データ コネクタに、リレーションシップ ルックアップが表示されます。 Excel Data Connector は、表示値を直接編集したり、別の列にある表示値の各属性を編集したりという、2 つのタイプの分析コード データ入力をサポートしています。 表示値の列と個々の属性の列の両方を連結した場合、両方を編集して、個別に公開できます。 表示値と個々の属性の両方を同じ行で編集した場合、個々の属性の変更は表示値の変更を上書きします。

フォーミュラ テーブル列をどのように作成しますか。

テーブルに式が必要な場合は、式の列を追加します。 テーブル バインドのフィールド選択ページで、[選択済のフィールド] リストの上にある ボタンをクリックして、新しい式列を追加します。 式のラベルと値は、選択したフィールド リストのすぐ下のフィールドに入力されます。 新しい式の列を追加すると、値を空白のままにして、更新をクリックします。 フィールドがテーブルに追加されると、Excel の標準機能を使用して数式を作成し、数式をコピーして数式列の値フィールドに貼り付けます。 式を定義するときは、テーブルに複数の行が存在することを確認してください。そうでない場合、Excel が提供する式は、該当する行ではなく、すべての行を対象としている場合があります。 現在の行だけを指定するには、アット マーク (@) が必要です。 たとえば、すべての行に対する 4 つの列の合計「=SUM(Table1[[ColumnA]:[ColumnD]])」と現在の行の 4 つの列の合計「=SUM(Table1[@[ColumnA]:[ColumnD]])」。

既知の問題

カスタム Excel テンプレートを選択した場合に発生するエラー

この問題は、ユーザーが Excel で開くボタンから Excel テンプレートを選択し、Record for Id {guid} not found というエラーが表示される場合に発生します。

カスタム Excel テンプレートが見つからない場合、エラーが発生します。 このエラーを引き起こす 1 つのシナリオは、環境間に財務と運用データベースを動かし、Excel テンプレートをコピーしないことです。

この問題を解決するために、ドキュメント テンプレート ページ (一般 > 一般 > Office 統合 > ドキュメント テンプレート) からテンプレート用のデータベース エントリを削除します。

更新は、以前のテンプレートでは自動的に行われません

「開くときの更新」を制御する機能が設定として追加されました。 これを既定の動作に追加するには、既存のテンプレートとブックで、オプション>データ コネクタ>更新オプションにある開くときの更新チェック ボックスをオンにする必要があります。

エンティティ検索中のエラー

エンティティへの参照が、プライベート エンティティ名 (DataEntity.Name) からパブリック エンティティ名 (DataEntity.PublicEntityName) に変更されました。 エンティティのパブリックおよびプライベート名が異なっており、Excel テンプレートまたはブックで使用されている場合、「エラー検索エンティティ」というメッセージが Excel アプリに表示されます。 詳細: エンティティ "<DataEntity.Name>" は見つかりません"。

これを解決するには、影響を受けるテンプレートのバインド情報を変更して、DataEntity.Name の代わりに DataEntity.PublicEntityName を指すようにします。

  1. 置き換える必要のある DataEntity.Name については、DataEntity.PublicEntityName を決定し、たとえば FMCustomerEntity を FleetCustomer に置き換えます。

  2. 影響を受けるテンプレートを検索します。

  3. テンプレートのファイル拡張子を .xlsx から .zip に変更します。

    ダイアログ ボックス名を変更する。

  4. 変更するファイルは、2015-05-25-FleetCustomersWithLocations.zipxlwebextensionswebextension2.xml など、xlwebextensions ディレクトリ内の webextension*.xml ファイルのいずれかになります。

  5. ファイルを開き、適切な場所であることを確認します。

  6. FMCustomerEntity などの、DataEntity.Name を検索します。

    DataEntity.Name を検索する。

  7. ZIP ファイルを抽出します。

  8. webextension xml ファイルを開きます。

  9. DataEntity.Name を対応する DataEntity.PublicEntityName に置き換えます。

  10. webextension .xml ファイルの変更を保存します。

  11. たとえば、古い zip ファイルの名前を変更し、名前に ".old" を追加します。

  12. 以前に抽出したすべてのコンテンツの新しい ZIP ファイルを作成します。 これは通常、アーカイブ/zip フォルダ内のコンテンツを強調表示し、そのコンテンツを使用して zip フォルダを作成する必要があります。

  13. ZIP ファイルには ZIP ファイルのルートに “_rels”、"docProps"、および "xl" の各フォルダがあることを確認します。

  14. 必要に応じて zip ファイルの名前を変更します。たとえば、ファイル 2015-05-25-FleetCustomersWithLocations.zip の名前を変更します。

  15. zip ファイル拡張子を .xlsx に変更します。

  16. 必要な場合は、ブック .xlsx ファイルを再発行します。