در این صفحه ، تیم App Store یک مرور کلی درباره تبدیل ارز در SAP ECC و نحوه اجرای آن در اسکریپت های استاندارد ما ارائه می دهد.
محتوا
- پیش نیاز: TDEC
- مورد 1 - ارز که می خواهیم در حال حاضر متناسب با ارز خروجی مورد نظر باشد
- مورد 2 - ارز که می خواهیم تبدیل کنیم ، ارز خروجی مطلوب + نرخ ارز (tcurr. ukurs) نیست<0
- CASE 3 - The currency we want to convert does not fit the desired output currency + the exchange rate (TCURR.UKURS) is> 0
جداول شیره مرتبط
جداول اصلی که برای تبدیل از یک ارز به دیگری مورد نیاز هستند عبارتند از:
tcurr
حاوی نرخ ارز مطلق از یک ارز به دیگری در یک بازه زمانی خاص است
→ مهمترین زمینه: UKURS
برای جلوگیری از ضرورت دور کردن نرخ ارز ، SAP مقادیر را در اعداد منفی ذخیره می کند ، به این معنی که معکوس آن مقدار نرخ ارز را توضیح می دهد (مثال زیر را ببینید).
مثال: تبدیل دلار آمریکا به یورو. نرخ ارز Currenct: 1 $ = 0،87719 €.
راه حل: برای افزایش دقت (فقط 5 مکان اعشاری امکان پذیر است!) و برای جلوگیری از خطاهای گرد ، SAP معکوس را ذخیره می کند. به عنوان مثال.-1،14 ، که به معنی 1/1،14 = 0،8771929824561 است.
نرخ ارز موجود در جدول TCURR قابل تفسیر نیست ، زیرا آنها همیشه به سوابق داده در جدول TCURF فاکتور مراجعه می کنند.
مگس
کورست
نوع نرخ ارز. می تواند از مشتری به مشتری متفاوت باشد اسکریپت استاندارد از Kurst = 'M "استفاده می کند ، که به عنوان نوع متوسط نرخ ارز تعریف شده است
fcurr
از ارز - ارز اولیه ای که می خواهید از آن تبدیل کنید
tcurr
به ارز - ارز خروجی که می خواهید به آن تبدیل کنید
گوداتو
تاریخی که نرخ ارز معتبر است
اوکراس
نرخ ارز مطلق در تاریخ خاص (GDATU) ؛مقادیر UKURS در قالب عددی xxxx ، xxxxx ذخیره می شوند ، بنابراین نرخ ارز می تواند از 0،00001 تا 9999. 9999 داشته باشد.
fFact*
نسبت واحدهای ارزی "از"
tfact*
نسبت واحدهای ارزی "به"
* مقادیر صحیح برای ffact und tfact معمولاً از روی میز tcurf گرفته می شود.
تكورف
شامل تبدیل ارزها در نسبت ها است. برای تهیه یک تبدیل دقیق تر لازم است
→ مهمترین زمینه ها: tfact ، ffact
مقادیر UKURS در قالب عددی xxxx ، xxxxx ذخیره می شوند ، بنابراین نرخ ارز می تواند از 0،00001 تا 9999. 9999 داشته باشد. برای افزایش دامنه ، tcurf. tfact/ffact عاملی را به UKURS اضافه کنید (مثال زیر را ببینید)
مثال: تبدیل روپیه اندونزی به یورو. نرخ ارز فعلی حدود 1 € = 0،000079 است. IDRدر نتیجه حداکثر تعداد اعشار ، tcurr. ukurs فقط حاوی مقدار 00008 است که خیلی دقیق نیست.
راه حل:
- برای جلوگیری از خطاهای گرد ، SAP معکوس را ذخیره می کند ، به عنوان مثال-12،54 (گرفته شده از داده های واقعی مشتری) ، در نتیجه 1/12،54 = 0،07974481658692. از آنجا که نرخ واقعی ارز از آن کوچکتر از میزان ذخیره شده در tcurr. ukurs (0،000079 در مقابل 0. 079745) است ، یک عامل اضافی مورد نیاز است. اینجاست که Tcurf قدم می زند:
- tcurf. ffact (IDR) = 1000 → 0،079745/1000 = 0،000079745 با کمک FFACT ، ما قادر به دریافت نرخ ارز مورد نیاز خود هستیم.
مگس
کورست
نوع نرخ ارز. می تواند از مشتری به مشتری متفاوت باشد اسکریپت استاندارد از Kurst = 'M "استفاده می کند ، که به عنوان نوع متوسط نرخ ارز تعریف شده است
fcurr
از ارز - ارز اولیه ای که می خواهید از آن تبدیل کنید
tcurr
به ارز - ارز خروجی که می خواهید به آن تبدیل کنید
گوداتو
تاریخی که نرخ ارز معتبر است
fffact
نسبت واحدهای ارزی "از"
باکره
نسبت واحدهای ارزی "به"
abwct*
نوع نرخ ارز جایگزین
abwga*
تاریخی که از آن نوع نرخ ارز جایگزین معتبر است
* در نظر گرفته نشده است
TCURX
حاوی اطلاعاتی در مورد تعداد مکان های اعشاری ارزهای مختلف است.
→ مهمترین زمینه: currdec
مثال: ین ژاپنی (JPY) هیچ مکان اعشاری ندارد → tcurx. currdec = 0 ، SAP هر مقدار را به عنوان نتیجه فرمول زیر ذخیره می کند: مقدار ذخیره شده = مقدار واقعی / (10 (2 - Currdec))
هنگامی که 100 JPY در SAP GUI وارد می شود ، مقداری که در جدول پس زمینه ذخیره می شود 100 JPY / (10 (2-0)) = 1،00 است زیرا tcurx. currdec (jpy) = 0
Dinar Tunesian (TND) دارای 3 مکان اعشاری → tcurx. currdec = 3 است
هنگامی که 100 TND (Dinar Tunesian) در SAP GUI وارد می شود ، مقداری که در جدول پس زمینه ذخیره می شود 100 TND / (10 (2-3)) = 1000 است زیرا tcurx. currdec (TND) = 3
راه حل: برای بازگرداندن ارزش واقعی ، باید از اطلاعات ذخیره شده در tcurx. currdec استفاده کنیم. این کار با مقدار TDEC محاسبه شده انجام می شود
استاندارد SAP 2 مکان اعشاری است ، بنابراین شما می توانید اطلاعاتی را برای همه ارزها در اینجا پیدا کنید.
کله
کورس
تعداد اعشار موجود در ارز
تبدیل ارز در اسکریپت های استاندارد فروشگاه App
تبدیل ارز در اسکریپت های استاندارد به شرح زیر محاسبه می شود:
Currency Conversion SAP - Example: P2P Standard, Transformation Script >جدول: موارد
بشر.<0 THEN (E.NETWR*ISNULL(TCURX.TDEC,1))*(1/ABS(TCURR_CC.UKURS)/(CASE WHEN COALESCE(TCURF_CC.FFACT, TCURR_CC.FFACT, 0) = 0 THEN 1 ELSE COALESCE(TCURF_CC.FFACT, TCURR_CC.FFACT) END))*(CASE WHEN COALESCE(TCURF_CC.TFACT, TCURR_CC.TFACT, 0) = 0 THEN 1 ELSE COALESCE(TCURF_CC.TFACT, TCURR_CC.TFACT) END) WHEN TCURR_CC.UKURS>0 سپس (e. netwr*isnull (tcurx. tdec ، 1))*(tcurr_cc. ukurs/مورد هنگام همبستگی (tcurf_cc. ffact ، tcurr_cc. ffact ، 0) = 0 سپس 1 اتوماع دیگر (tcurf_cc. ffact ، tcurr_cc. ffact ، tcurr_cc. ffact) پایان*مورد هنگامی که coincce (tcurf_cc. tfact ، tcurr_cc. tfact ، 0) = 0 سپس 1 دیگری coincce (tcurf_cc. tfact ، tcurr_cc. tfact) پایان) پایان به عنوان netwr_converted. بشراز جانب . پیوستن . پیوستن به سمت چپ (انتخاب tcurx. currkey ، cast (tcurx. currdec به عنوان int) به عنوان currdec ، قدرت (ریخته گری (10 به عنوان شناور) ، (2-currdec)) به عنوان tdec از tcurx) به عنوان tcurx در 1 = 1 و tcurr_cc. fcurr =E. Waers
پیش نیاز: TDEC
خطوط 3 ، 4 ، 5 ، 16 را در اسکریپت SQL در بالا مشاهده کنید
SAP هر مقدار را با توجه به مکان های اعشاری خود ذخیره می کند (به عنوان مثال 100 JPY به عنوان 1،00 JPY = 1 JPY ذخیره می شود ، به بالا مراجعه کنید). برای محاسبه این اعداد به مقدار واقعی ، ما به TDEC نیاز داریم.
TDEC به شرح زیر محاسبه می شود:
از آنجا که مقدار استاندارد مکان اعشاری 2 است ، ما TDEC را با 2 منهای تعداد مکان اعشاری برای بازگشت به مقدار صحیح محاسبه می کنیم.
مثال:
100 JPY → SAP: 1،00 JPY = 1 JPy → 1 · 10 (2 - 0) = 1 JPy · 100 = 100 JPy
100 tnd → SAP: 1000 tnd = 1000 · 10 (2 - 3) = 1000 tnd · 0،1 = 100 tnd
مورد 1 - ارز که می خواهیم در حال حاضر متناسب با ارز خروجی مورد نظر باشد
خط 3 را در اسکریپت SQL در بالا مشاهده کنید
سناریو: از ارز = به ارز
تبدیل به شرح زیر محاسبه می شود:
مثال 1: از یورو تا یورو ،
tcurx. currdec (یورو) = تهی → برای ارزهای مشترک با 2 مکان اعشاری ، TCURX معمولاً حاوی مقادیر نیست!
→ TDEC: isnull (10 (2 - null)) == true → isnull (tcurx. tdec ، 1) = 1
→ NetWr_converted: 100 € → SAP: 100 € ، زیرا EUR به هر حال 2 مکان اعشاری دارد به هر حال 100 € · 1 = 100 €
مثال 2: از JPY تا JPY ،
tcurx. currdec (jpy) = 0
→ TDEC: isnull (10 (2 - 0)) == false → isnull (tcurx. tdec ، 1) = 10 (2 - 0) = 100
→ Netwr_converted: 100 JPY → SAP: 1،00 JPY = 1 JPy → 1 · 10 (2 - 0) = 1 JPy · 100 = 100 JPy
مورد 2 - ارز که می خواهیم تبدیل کنیم ، ارز خروجی مطلوب + نرخ ارز (tcurr. ukurs) نیست<0
خط 4 را در اسکریپت SQL در بالا مشاهده کنید
سناریو: از ارز! = به ارز ، tcurr. ukurs<0
ما همچنین باید در نظر بگیریم که عوامل تبدیل ممکن است برای ارز و ارز متفاوت باشد. بنابراین ما ارز را از فاکتور از فاکتور تقسیم می کنیم و نتیجه را با فاکتور به ضرب می کنیم.
برای مقادیر منفی ، تبدیل به شرح زیر محاسبه می شود:
مثال 1: از دلار تا یورو ،
tcurx. currdec (USD) = NULL
TDEC: 10 (2 - null) = null → isnull (tcurx. tdec ، 1) = 1
مثال 2: از روپیه اندونزی (IDR) تا یورو (یورو)
tcurx. currdec (idr) = 0
TDEC: 10 (2 - 0) = 100 → isNull (tcurx. tdec ، 1) = 100
CASE 3 - The currency we want to convert does not fit the desired output currency + the exchange rate (TCURR.UKURS) is> 0
خط 5 را در اسکریپت SQL در بالا مشاهده کنید
Scenario: FROM currency != TO currency, TCURR.UKURS> 0
باید در نظر بگیریم که عوامل تبدیل ممکن است برای ارز و ارز متفاوت باشد. بنابراین ما ارز را از فاکتور از فاکتور تقسیم می کنیم و نتیجه را با فاکتور به ضرب می کنیم.
برای مقادیر منفی ، تبدیل به شرح زیر محاسبه می شود:
مثال 1: از پوند انگلیس (GBP) تا یورو (یورو)
tcurx. currdec (idr) = null
TDEC: 10 (2 - null) = null → isnull (tcurx. tdec ، 1) = 1
مثال 2: از روپیه اندونزی (IDR) تا یورو (یورو)
tcurx. currdec (idr) = 0
TDEC: 10 (2 - 0) = 100 → isNull (tcurx. tdec ، 1) = 100
Q + A
س: بعد از اینکه تحولات را اجرا کردم ، NetWR_CONVERTED هیچ داده ای برای برخی/بیشتر تبدیل ها نشان نمی دهد ، به خصوص برای یک یا برخی از ارزهای خاص ، چه اشتباهی وجود دارد؟
پاسخ: این می تواند دلایل مختلفی داشته باشد. در ماه های گذشته ، روش های زیر مشکلات تبدیل را برطرف کرده است:
- نوع نرخ ارز (Kurst = 'M') مورد استفاده در اسکریپت استاندارد متناسب با نوع نرخ ارز استاندارد مشتری نیست → از مشتری بخواهید از Kurst استفاده شود و پارامتر را در ادغام داده EMS تغییر دهید! اطمینان حاصل کنید که پس از آن تحولات را دوباره انجام داده و به طور کامل بارگذاری مجدد DataModel را برای اعمال تغییرات بارگیری کنید.
- تاریخ مبادله ارز اشتباه است / برای تاریخ خاص ، هیچ داده ای در جداول تبدیل وجود ندارد - این مشکل با استفاده از محدوده تاریخ به جای یک تاریخ خاص برطرف می شود. این یکی از اصلی ترین دلایل اضافه کردن ما در جداول تبدیل ارز (TCURR_CC و TCURF_CC) است. اگر هنوز مشکلی وجود دارد ، به ما اطلاع دهید!
س: در اسکریپت ها در مورد TCURR_CC و TCURF_CC صحبت می کنیم ، در حالی که در مقاله ای در مورد Tcurr و Tcurf صحبت می کنیم. تفاوت کجاست؟
پاسخ: tcurr_cc و tcurf_cc توسط ما به صورت دستی ایجاد می شوند. آنها مبتنی بر جداول منبع SAP Tcurr و Tcurf هستند و با داده های اضافی مانند شروع معتبر و پایان معتبر نرخ ارز یا رتبه بندی نرخ ارز در صورت وجود بیش از یک امکان ، غنی شده اند. با این حال ، به خاطر سادگی ، مقاله از جداول استاندارد SAP برای توضیحات استفاده می کند. منطق یکسان است ، زیرا جداول _CC دارای همان زمینه هایی نسبت به جداول منبع است
س: چرا ما برای محاسبه نرخ ارز از زمینه های دیگر - مانند ekko. wkurs - استفاده نمی کنیم؟
پاسخ: روش استاندارد SAP برای تبدیل ارز ، روشی است که در اسکریپت های فروشگاه App تحقق می یابد. در برخی موارد نادر ، مشتریان از قسمت ekko. wkurs برای تبدیل ارز استفاده می کردند. ما 100 ٪ مطمئن نیستیم که داده های ذخیره شده در این زمینه چقدر معتبر است. با این حال ، ما معتقدیم که داده های WKURS ممکن است از یک ورودی دستی در طی فرآیند خرید حاصل شود. بدین ترتیب داده ها ممکن است نرخ ارز صحیح را نشان ندهند
س: چرا TCURF مورد نیاز است ، FFACT و TFact نیز در TCURR وجود دارند؟
پاسخ: دو زمینه در Tcurr معمولاً اهمیتی ندارند. به هر حال ، برای رسیدگی به وقایع ، ما آنها را در اسکریپت های استاندارد به عنوان "انتخاب دوم" برای افزودن عامل به اوکوها گنجانده ایم.
س: نرخ ارز مطلق (ستون UKURS) در جدول Tcurr حاوی مقادیر منفی است - آیا این یک شاخص برای داده های بد است؟
پاسخ: شماره نرخ ارز منفی در SAP بازنمایی معکوس است. مثال: UKURS = -1،1145 → نرخ ارز = 1/1،1145
س: چرا SAP گاهی اوقات نرخ ارز را در مقادیر مثبت و گاه مثبت ذخیره می کند؟
پاسخ: در واقع ، ما در حال حاضر نمی دانیم که چرا این از پرونده به پرونده دیگر متفاوت است. توضیحات در مورد آن بسیار مورد استقبال قرار می گیرد!
خبرهای فارکس...
ما را در سایت خبرهای فارکس دنبال می کنید
برچسب :
نویسنده : شهره لرستانی
بازدید : 34
تاريخ : چهارشنبه
15 شهريور
1402 ساعت: 8:12