しかし、このフィールドの値は最初は0なので、初期化する必要があります
Purchase Line で何をしようとしているのか正確にはわかりませんが、Qty のようなフィールドです。請求書と数量に。ほとんどの場合、数量の検証時に自動的に入力されます。どちらのセットも Quantity に等しくなります。ユーザーがフォームのフィールドに何かを入力したとき、または呼び出して C/AL コードからトリガーを検証します。PurcaseLine.VALIDATE("Quantyity", number);
問題は、0 に戻ったときです。この行のすべての請求書が受領されたことをどのようにマークできますか?
請求書を転記すると、転記された数量がフィールドに追加されQty. Invoiced
、受領した数量がフィールドに追加されますQty. Received
。そのため、いつでもいくつのアイテムを受け取って支払ったかを知ることができます。転記手順のみがそれらを変更でき、変更する必要があるため、両方のフィールドはユーザーに対して読み取り専用です。
したがって、数量がある場合。= 10 の場合、そのうちの 4 つを転記し (請求書への数量 = 4)、数量を転記します。請求済み = 0. 数量を取得します。= 10、数量 請求書まで = 6、数量 請求済み = 4。数量。この場合の請求書は数量の残りです。請求されます。
目的がわからないフィールドは使用しないでください。たとえば、フィールド「完了」は製造オーダー機能の一部であり、数量には関係ありません。すべての請求書に。
フィールドの意味を調べるには、ヘルプを参照できます (表のフィールドの上に立って F1 を押します)。それはすべての分野で機能するわけではありません。もう 1 つの方法 (開発者でライセンスを持っている場合) は、Developer Tool Kit (インストール CD またはここにあります) を使用することです。このユーティリティを使用すると、Nav オブジェクト間の依存関係を検索できます。
Webサービスについて。これらのテーブルを直接使用しないでください。それは本当に多くのトラブルと不便を引き起こします。新しい操作テーブルを作成します。Purchase Order Import
それらに名前を付けますPurchase Line Import
. それらのページを作成し、Web サービスとして公開します。好きな形式でデータをインポートします。つまり、テーブルは実際のテーブルのクローンにすることも、必要なフィールドをほとんど持たないこともできます。インポートの最後に呼び出されるページのトリガーにいくつかのコードをOnModify
配置するか、インポート テーブルから発注書と行を作成または更新する関数を使用してコードユニットを公開します。結局、インポート テーブルをクリアします。
タスクが外部システムからの数量に基づいて部分的に入庫を転記することである場合、手順は次のようになります。
- 注文書と明細が作成され、数量が 100 であると仮定すると、この数量を分割して転記する必要があります。
- インポート Web サービスを介して購買明細に転記される数量 ページを介してテーブルをインポート
- ページの OnModify がトリガーされ、そのトリガーにコードを追加して Purchase Line を更新するか、Web サービス経由でコードユニットを呼び出して Purchase Line を更新し
Qty. to Invoice
ますQty. to Invoice
。外部アプリケーションではなく、ここで購買明細の作成と更新に関するすべてのビジネス ロジックを配置します。
- これで、数量 = 100、請求する数量 = 5 になります。
- Web サービス経由で投稿コードユニットを呼び出します。もちろん、投稿コードユニット自体を公開しないでください。公開されている別のコードユニットを介して呼び出します。
- これで、数量 = 100、請求する数量 =あまり気にしない、請求済みの数量 = 5 となり、手順 2 ~ 5 をもう一度繰り返すことができます。
請求する数量を気にする必要はありません。その理由は次のとおりです。次に数量の次の部分をインポートするときに、確認する必要があるのは Import_Qty < (数量 - 請求済み数量) だけです。true の場合は投稿できますが、そうでない場合は投稿できません。