برگرفته از وب سایت شرکت آنتارگیت
در این مقاله سعی شده است تعدادی از توابع کاربردی و استاندارد مایکروسافت داینامیکس ۳۶۵ که به منظور آسان کردن کار با اطلاعات چند شرکتی می باشد، به زبانی ساده و همراه با مثال آموزش داده شود.
Selects
واکشی داده های یک شرکت از بین چندین شرکت
به منظور واکشی اطلاعات یک شرکت مشخص از بین چند شرکت، در حالتی که الزاما این شرکت شرکت فعال نمی باشد، می توان از تابع Crosscompany به صورت ذیل استفاده نمود.
واکشی اطلاعات چند شرکت با استفاده از تابع Crosscompany
در صورتیکه لازم است اطلاعات از بین چند شرکت مشخص، از بین همه شرکتها، انتخاب شود، می توان از این تابع همراه با وارد کردن لیست کمپانی ها مورد نظر استفاده نمود. البته برای این منظور دو حالت وجود دارد.
در حالت اول، در صورتیکه کمپانی های مورد نظر مشخص باشد:
در حالت دوم، نام شرکت از طریق متغیر در تابع Where فراخوانی می شود:
واکشی اطلاعات از یک شرکت مشخص با استفاده تغییر کمپانی
یک راه دیگر برای برای واکشی اطلاعات تغییر کمپانی و سوییچ کردن به آن می باشد، برای این منظور می توان از تابع Changecompany به صورت ذیل استفاده نمود.
Forms data sources
نمایش اطلاعات چند شرکت
اگر لازم است اطلاعات چندین شرکت بصورت همزمان در یک فرم نمایش داده شود، لازم است در قسمت مشخصات (Property) فرم برای فیلد Cross Company Auto Query مقدار Yes وارد گردد. در این حالت، امکان انتخاب داده ها از بین چند شرکت فعال می گردد.
برای محدود کردن لیست کمپانی ها، لازم است مقادیر کمپانی های مورد نظر را در متد ()init محدود نمایید.
نحوه فراخوانی این متد به صورت ذیل می باشد.
Copying records
کپی کردن اطلاعات با استفاده از تابع buf2buf
برای کپی کردن اطلاعات از یک کمپانی به کمپانی دیگر در ابتدا با استفاده از تابع Changecompany به کمپانی مورد نظر سوییچ کرده و سپس می توان فیلدهای موردنظر را (به جز فیلدهای سیستمی) با استفاده از تابع buf2buf تکمیل نمود.
در کد ذیل ردیف جدیدی ایجاد شده و فیلدهای آن با مقادیر رکورد اصلی مقداردهی شده است:
به عنوان مثال برای استفاده از تابع استاندارد buf2buf میتوان به نحوه استفاده آن در کلاس CustFreeInvoiceCorrection اشاره نمود.
کپی کردن اطلاعات یک جدول و تغییر مقادیر سیستمی آن
در بعضی موارد، بهر دلیلی، لازم است تغییراتی برروی فیلدهای سیستمی جدول اعمال گردد. البته این تغییر شامل حال DataAreaID نمی گردد، چرا که این فیلد الزاما با مقدار شرکت جدید که رکورد در آن ایجاد شده، یکسان است.
برای این دسته از تغییرات از متد data استفاده می شود.
برای این منظور همزمان با ایجاد ردیف جدید، امکان بازنویسی بعضی از فیلدهای سیستمی وجود دارد. البته در این حالت لازم است فیلد DataAreaID نیز بعنوان فیلدهای انتخابی بازنویسی گردد.
برای این تغییر از ساختاری مشابه ذیل استفاده می گردد.
()OverwriteSystemfieldsPermission().assert() и overwriteSystemfields
در این مثال نمونه ای از بازنویسی وتغییر در فیلدهای سیستمی نمایش داده شده است.
Intercompany Sales \ Purchase orders
از جمله قابلیت های چندشرکتی، می توان به امکان انتخاب دو تراکنش از بین دو شرکت متفاوت اشاره کرد. به طور مثال، نیازمندی نمایش سفارش خرید از یک شرکت و سفارش فروش از شرکت دیگر را می توان نام برد.
در این حالت در صورت داشتن سفارش خرید، دسترسی به سفارش فروش در شرکت دیگر میسر است و همچنین با داشتن سفارش فروش از یک شرکت می توان سفارش خرید شرکت دیگر را بدست آورد.
مطلب ذکر شده در هر دو حالت (مشخص بودن شماره سفارش خرید و یا شماره سفارش فروش)طی مثال ذیل نمایش داده شده است.
در تصویر ذیل یک نمونه از این کد استاندارد که در کلاس MarkupCopy با فراخوانی سفارش فروش انجام شده، نمایش داده شده است.
لینک منبع :
دسترسی به کانال تلگرام از آدرس :