Working with Intercompany functionality

توابع چند شرکتی در مایکروسافت داینامیکس ۳۶۵

Spread the love

برگرفته از وب سایت شرکت آنتارگیت

در این مقاله سعی شده است تعدادی از توابع کاربردی و استاندارد مایکروسافت داینامیکس ۳۶۵ که به منظور آسان کردن کار با اطلاعات چند شرکتی می باشد، به زبانی ساده و همراه با مثال آموزش داده شود.

Selects

واکشی داده های یک شرکت از بین چندین شرکت

به منظور واکشی اطلاعات یک شرکت مشخص از بین چند شرکت، در حالتی که الزاما این شرکت شرکت فعال نمی باشد، می توان از تابع Crosscompany به صورت ذیل استفاده نمود.

fletching data

واکشی اطلاعات چند شرکت با استفاده از تابع Crosscompany

در صورتیکه لازم است اطلاعات از بین چند شرکت مشخص، از بین همه شرکتها، انتخاب شود، می توان از این تابع همراه با وارد کردن لیست کمپانی ها مورد نظر استفاده نمود. البته برای این منظور دو حالت وجود دارد.

در حالت اول، در صورتیکه کمپانی های مورد نظر مشخص باشد:

fletching data_2

در حالت دوم، نام شرکت از طریق متغیر در تابع Where فراخوانی می شود:

fletching data_3

واکشی اطلاعات از یک شرکت مشخص با استفاده تغییر کمپانی

یک راه دیگر برای برای واکشی اطلاعات تغییر کمپانی و سوییچ کردن به آن می باشد، برای این منظور می توان از تابع Changecompany به صورت ذیل استفاده نمود.

Forms data sources

نمایش اطلاعات چند شرکت

اگر لازم است اطلاعات چندین شرکت بصورت همزمان در یک فرم نمایش داده شود، لازم است در قسمت مشخصات (Property) فرم برای فیلد Cross Company Auto Query مقدار Yes وارد گردد. در این حالت، امکان انتخاب داده ها از بین چند شرکت فعال می گردد.

displaying data

برای محدود کردن لیست کمپانی ها، لازم است مقادیر کمپانی های مورد نظر را در متد ()init محدود نمایید.

نحوه فراخوانی این متد به صورت ذیل می باشد.

Copying records

کپی کردن اطلاعات با استفاده از تابع buf2buf

برای کپی کردن اطلاعات از یک کمپانی به کمپانی دیگر در ابتدا با استفاده از تابع Changecompany به کمپانی مورد نظر سوییچ کرده و سپس می توان فیلدهای موردنظر را (به جز فیلدهای سیستمی) با استفاده از تابع buf2buf تکمیل نمود.

در کد ذیل ردیف جدیدی ایجاد شده و فیلدهای آن با مقادیر رکورد اصلی مقداردهی شده است:

copying records

به عنوان مثال برای استفاده از تابع استاندارد buf2buf میتوان به نحوه استفاده آن در کلاس CustFreeInvoiceCorrection اشاره نمود.

copying records_2

کپی کردن اطلاعات یک جدول و تغییر مقادیر سیستمی آن

در بعضی موارد، بهر دلیلی، لازم است تغییراتی برروی فیلدهای سیستمی جدول اعمال گردد. البته این تغییر شامل حال DataAreaID نمی گردد، چرا که این فیلد الزاما با مقدار شرکت جدید که رکورد در آن ایجاد شده، یکسان است.

برای این دسته از تغییرات از متد data استفاده می شود.

برای این منظور همزمان با ایجاد ردیف جدید، امکان بازنویسی بعضی از فیلدهای سیستمی وجود دارد. البته در این حالت لازم است فیلد DataAreaID نیز بعنوان فیلدهای انتخابی بازنویسی گردد.

برای این تغییر از ساختاری مشابه ذیل استفاده می گردد.

()OverwriteSystemfieldsPermission().assert() и overwriteSystemfields

در این مثال نمونه ای از بازنویسی وتغییر در فیلدهای سیستمی نمایش داده شده است.

copying records_3

Intercompany Sales \ Purchase orders

از جمله قابلیت های چندشرکتی، می توان به امکان انتخاب دو تراکنش از بین دو شرکت متفاوت اشاره کرد. به طور مثال، نیازمندی نمایش سفارش خرید از یک شرکت و سفارش فروش از شرکت دیگر را می توان نام برد.

در این حالت در صورت داشتن سفارش خرید، دسترسی به سفارش فروش در شرکت دیگر میسر است و همچنین با داشتن سفارش فروش از یک شرکت می توان سفارش خرید شرکت دیگر را بدست آورد.

مطلب ذکر شده در هر دو حالت (مشخص بودن شماره سفارش خرید و یا شماره سفارش فروش)طی مثال ذیل نمایش داده شده است.

intercompany sales

در تصویر ذیل یک نمونه از این کد استاندارد که در کلاس MarkupCopy  با فراخوانی سفارش فروش انجام شده، نمایش داده شده است.

intercompany sales_3

لینک منبع :

دسترسی به کانال تلگرام از آدرس :

http://t.me/dynamics_ax

http://t.me/dynamics_ax

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.