بلاگ

آخرین خبر ها و آپدیت ها

چه زمانی از سرویس باس استفاده کنیم؟

one of the question that my client ask frequently is, we have a webservice should we put it behind the OSB or leave it as it is?

well it is a question that have a simple answer “yes you do!” and a complete answer “it depends!”.

for the first answer it is obvious you have an OSB and when you put your web-service behind the OSB you have some value added features like proxy, load balance, transformation and so an.

but in a real world scenario if I create a service that is going to call in my internal application should I use the OSB again? well, take in consideration that we have mediator on the SOA suite/BPM Suite that can handle most of the OSB functionality (virtualization of service) and if you are the owner of the service then Mediator would handle most of the functionality that we mentioned for OSB.

you can read full article on https://link.medium.com/N730lwcGf9

thanks for your time and appreciated!

خواندن بیشتر
royal visionچه زمانی از سرویس باس استفاده کنیم؟

رویکرد جدید شرکت اوراکل

cloud diagram - رویکرد جدید شرکت اوراکل

سیاست اوراکل در سال ۲۰۲۰ در زمینه تکنولوژی و روش توسعه سیستم در نسخه های جدید محصولات این شرکت مشخص است.

حتما شنیدید که شرکت اوراکل در سال گذشته به شدت در زمینه کلاد سرمایه گذاری کرده است.
با آخرین نسخه که در زمینه مییان افزار خود ارائه داده است یعنی‌نسخه ۱۲.۲.۱.۴ به روشنی‌مسیر و جهت این شرکت نمایانگر شده است.
در این نسخه تاکید بسیار زیادی بر روی رست و جاوا اسکریپت شده است و یادمان نرود در سه سال گذشته سرمایه گذاری زیادی بر روی فریمورک jet نموده است.
از این تغییر تکنولوژی و استراتژیک میتوان برداشت های زیر را نمود.
از امسال لایه های تولید داده و بیزینس بصورت رست خواهد بود.
لایه رابط کاربری جاوا اسکریپت خواهد بود.
بهتر است اگر هنوز به این تکنولوژی ها خو نگرفته اید برنامه آموزشی مفصلی برای آن ترتیب دهید.

#oracle #اوارکل #middleware #rest #javascriptframework #vue #react #jet #adf2019

خواندن بیشتر
royal visionرویکرد جدید شرکت اوراکل

مخفی کردن کلمه عبور و نام کاربری از URL‌ در گزارشات

در فایل cgicmd (که در داخل سرور گزارش است با جستجو این فایل را پیدا کنید )
یک خط مانند زیر اضافه نمایید.
compact:userid=test/test@test 

حال برای فراخوانی گزارش در آدرس مقدار زیر را اضافه نمایید.

http://neptune.world.com:80/jsp/myreport.jsp?&report=myreport.jsp&destype=cache&cmdkey=compact

توجه نمایید که پارامتر ها تغییر نمیکند فقط یک پارامتر اضافه میگردد.
cmdkey=compact

کلمه compact دلخواه است.

خواندن بیشتر
royal visionمخفی کردن کلمه عبور و نام کاربری از URL‌ در گزارشات

نحوه کار کردن با یک SVN آنلاین

بسیاری از سایت ها به شما امکان ساخت یک SVN آنلاین را میدهند مانند سایت زیر
سایت ایجاد SVN رایگان
پس از ساخت اکانت در سایت فوق یک Repository برای SVN در همان اکانت بسازید و آدرس آن را ذخیره کنید
حال وارد JDeveloper شوید و اکانت فوق را وارد نمایید.از منوی View بخش team و سپس Version Navigator را انتخاب نمایید.سپس بر روی پنجره Version Navigator رفته بر روی Subversion کلیک راست نموده و گزینه New Repository را انتخاب نمایید.

سپس در پنجره باز شده اطلاعات گرفته شده از سایت unfuddle را پر مینمایید مانند شکل زیر

Repository URL–> از سایت unfuddle در بخش Repository برداشته شود. مانند شکل زیر

Connection Name–> یک نام مشخص و دلخواه
Username–> نام کاربری سایت Unfuddle.com
Password–>کلمه عبور سایت Unfuddle.com
s سپس دکمه Test را فشار دهید تا عبارت Access Granted ظاهر شود سپس ok نمایید
حال هر پروژهای را که خواستید سوسرش بصورت آنلاین نگهداری شود بر روی Application کلیک راست نمایید و گزینه Version Application را انتخاب نمایید مانند شکل زیر

 

توجه نمایید اگر پروژه شما از jar فایلهای مختلف استفاده میکند باید تمام jar فایلها در داخل فلدر پروژه باشد مثلاً در داخل فلدر پروژه Model یک فلدر به نام lib ایجاد کنید و jar فایلها هه در آنجا باشد که زمان ورژن خوردن آنها نیز همراه پروژه منتقل گردند.

فایل پیوست:
esvn - نحوه کار کردن با یک SVN آنلاین
svn working copy view large - نحوه کار کردن با یک SVN آنلاین
SVNClientBig - نحوه کار کردن با یک SVN آنلاین
خواندن بیشتر
royal visionنحوه کار کردن با یک SVN آنلاین

بازیابی رکورد جاری پس از Rollback

توضیح مساله:
در برنامه‌های ADF پس از آن که عملیات rollback انجام میگیرد تمام اطلاعات refresh می شوند و ردیف جاری به اولین رکورد view باز می گردد. حال شرایطی را درنظر بگیرید که کاربر ردیفی را انتخاب کرده است و در این لحظه نیاز به ایجاد رکوردی جدید می باشد و با زدن دکمه ایجاد رکورد خالی را ایجاد می نماید اما پس از آن منصرف می شود و دکمه انصراف را می فشارد و در اینجا نیاز به انجام عملیات rollback می باشد تا رکورد جدید خالی حذف گردد. پس از عملیات rollback کاربر به ردیف قبل از عملیات ایجاد باز نخواهد گشت و اولین رکورد view به عنوان ردیف جاری انتخاب خواهد شد و کاربر مجبور خواهد بود تا دوباره ردیف مورد نظر را جستجو و انتخاب نمایید. این موضوع از دیدگاه کاربر بسیار وحشتناک می باشد و قصد دارم در ادامه روشی را بیان کنم که کاربر را به ردیف قبلی خود باز گرداند.
توضیح راه حل:
در ابتدا باید قبل از انجام هر عملیات ردیف جاری را در scope مناست ذخیره نماییم. در صورتی که تمام عملیات شما در یک صفحه انجام می شود از viewScope استفاده نمایید که من فرض را بر این حالت قرار داده ام. در backing bean خود فیلد و متد زیر را تعریف نمایید

final String OLD_CURR_KEY_VIEWSCOPE_ATTR = "__oldCurrentRowKey__";<br />
public BindingContainer getBindings() {<br />
return BindingContext.getCurrent().getCurrentBindingsEntry();<br />
}

برای ذخیره ردیف جاری متد زیر را اجرا نمایید.

 public void saveCurrentRow() {<br />
BindingContainer bindings = getBindings();<br />
DCIteratorBinding dciter =<br />
(DCIteratorBinding)bindings.get("Your view iterator name");<br />
if (dciter != null) {<br />
Row oldCcurrentRow = dciter.getCurrentRow();<br />
ADFContext adfCtx = ADFContext.getCurrent();<br />
adfCtx.getScope("pageFlowScope").put(OLD_CURR_KEY_VIEWSCOPE_ATTR,<br />
oldCcurrentRow.getKey().toStringFormat(true));<br />
}<br />
}

حال ردیف جاری در pageFlowScope ذخیره شده است و می توانید عملیات rollback را انجام دهید و پس از آن متد زیر را اجرا نمایید تا ردیف قبلی را بازیابی و به عنوان ردیف جاری انتخاب

public void restoreCurrentRow() {<br />
BindingContainer bindings = getBindings();<br />
DCIteratorBinding dciter = (DCIteratorBinding) bindings.get("Your view iterator name");<br />
ADFContext adfCtx = ADFContext.getCurrent();<br />
String oldCurrentRowKey = (String) adfCtx.getViewScope().get(OLD_CURR_KEY_VIEWSCOPE_ATTR);<br />
if ( oldCurrentRowKey != null){<br />
dciter.setCurrentRowWithKey(oldCurrentRowKey);<br />
FacesContext fctx = FacesContext.getCurrentInstance();<br />
fctx.renderResponse();<br />
}</p>
<p>}
فایل ضمیمه شده مثال کامل می باشد.
فایل پیوست:
داانلود
خواندن بیشتر
royal visionبازیابی رکورد جاری پس از Rollback