峯文がトピックを作成しました

  • NetWeaver 0 Votes 1242 閲覧数


    NetWeaverとは

    NetWeaverとは、SAP社のソリューションであり、従来のABAP技術を活かしながら、J2EE技術を土台として全面的に取り込み、人・情報・ビジネスを統合する「次世代統合プラットホーム」として、SAP社からERPを含めた全てのビジネススイートのアプリケーション基盤という位置づけをしております。

    NetWeave ABAPは、SAP ERP Central Component(SAP ECC、従来のR/3部分)の稼働基盤であり、R/3までの時代ではBasis(ベーシス)と呼ばれてきました。

    NetWeaverの利用タイプ

    NetWeaver Platformは、完全にコンポーネントベースのアーキテクチャ構成を実現できています。NetWeaver Platformを構成する機能は、利用タイプとして分けており、インストール時に必要に応じてインストール単位として選ぶことができます。

    以下の表でバージョン毎の製品名およびその利用タイプを説明します。あくまでも筆者の認識で整理した内容ですので、間違いがあれば、有識者達にご指摘していただきたいです。

    バージョン製品名利用タイプAsABAPAsJAVABWCEDIEPCEPMIPI7.0NetWeaver Platform○○-○○○○○○7.1Netweaver CE○○-○○○○-○NetWeaver PI-○------○NetWeaver Mobile-○-----○-7.2Netweaver CE○○-○○○--○7.3NetWeaver Platform○○○○○○○○○7.4NetWeaver Platform○○○○○○○○○NetWeaverの開発環境

    NetWeaverの開発環境は、ABAPとJAVAによって分かれております。

    ABAP
    ABAPワークベンチ(SapGUI利用)JAVA
    NWDS(Eclipseベース) 


  • NWDS 0 Votes 139 閲覧数


    このトピックでは、開発設定の導入手順を取り上げて説明します。


  • NWDS 0 Votes 58 閲覧数


    接続先のABAPサーバの設定です。


  • NWDS 0 Votes 91 閲覧数


    NWDSからAs Javaへアプリケーションをデプロイしたりデバッグすることがあれば、AsJavaの情報を事前に設定する必要があります。

     


  • NWDS 0 Votes 67 閲覧数



    Eclipse基盤が提供した機能はとくに説明しません。

    概述

    NWDSの機能はパースペクティブによって取りまとめられています。

    Window→Open Perspective→Othersでどんなパースペクティブがあるかを確認できます。

    Composite Application

    Composite Designer

    Desgin Time Repository

    Development Infrastructure

    Dictionary

    Enterprise Portal

    Process Development

    Process Modeling

    SAP Management

    Virtual Composer

    WebDynpro

    Deployment


  • NWDS 0 Votes 122 閲覧数


    このトピックでは、Eclipseの概要を取り上げて説明します。

    画面構成画面イメージ

    ワークベンチ

    Eclipseを起動すると、1つの作業台が起動します。この作業台のことを「ワークベンチ」と呼びます。
    ワークベンチは、次に説明するパースペクティブやエディター、ビューの土台となっている部分のことで、ワークベンチそのものが画面上に表示されることはありません。

    パースペクティブ

    パースペクティブは視角、視野といういみをもっています。
    ワークベンチには、たくさんの機能があります。しかし、ある1つの作業をする際には、その一部の機能しか使いません。そのため、Eclipseでは必要な機能だけを選んで画面上に表示するようにしています。
    どの機能を表示するかを選んだもの、さらに選んだ機能をどのように配置するかを決めたものを、「パースペクティブ」と呼びます。

    Eclipseを起動すると、1つのパースペクティブが選択されて画面に表示されます。

    エディタ

    パースペクティブは、エディターとビューで構成されています。
    エディターは、プログラムなどのデータの作成、編集、保存を行う機能です。

    ビュー

    ビューは、さまざまな情報を表示し、かつそれらに対して操作を行うことのできるウィンドウです。


  • WDJ 0 Votes 137 閲覧数


    このトピックでは、エラーハンドリング処理のプログラミング方法を取り上げて説明します。

    概述

    エラーハンドリング (英:error handling)とは、、プログラムの処理中に処理が妨げられる事象が発生した際、その処理をエラーとして対処する処理のことです、例外処理とも呼ばれます。

    エラーハンドリングの処理内容は、プログラム内にあらかじめ用意しておく必要がありますので、このトピックでは、WDJ開発におけるエラーハンドリング処理の方法や手順を取り上げて説明します。
    エラーハンドリング処理を行う必要がある。
    Webdynproでは、エラーハンドリング処理は以下の手順で行う。
    エラーハンドリング処理の概要手順
    ① Message Poolの定義追加
    ② Message Poolへのアクセス
    ③ UIへの出力領域の定義
    ④ エラーハンドリング処理

    メッセージの定義

    メッセージはメッセージプールに定義されます。メッセージプールはWebdynproコンポーネント毎に一つのみが存在します。

    メッセージはプログラムが格納されたDCのメッセージプールに定義すること以外、共通的なDCを一つ用意して、そのなかのメッセージプールでメッセージを纏めて定義することによりメッセージの共通化を図ることができます。

    メッセージ文言はパラメータをつけることができます。

    メッセージの取得

    Webdynproでは、Message PoolへのアクセスやMessage Poolからメッセージの取得に、以下の手順で行う。
    IWDTextAccessor APIを利用し、Message Poolへの接続を作成する。
    Message Poolへの接続を用い、MessageKeyをもとに、メッセージを取得する。

    Object[] parameters = new Object[1]; parameters[0] = parameter;

    IWDTextAccessor textAccessor = wdComponentAPI.getTextAccessor();
    String msg = textAccessor.getText('dbupderror'), parameters); メッセージ領域の定義

    Webdynproでは、画面上にメッセージを表示するには、MessageAreaというUIエレメントを配置する必要があります、
    配置イメージを下図に示します。

    エラーハンドリング処理

       
    Webdynproでは、エラーハンドリング処理により、アプリケーション例外を発生させ、予め定義されるエラーメッセージ内容をします。
    具体的な手順やコード例は以下のように示します。


    if (!wdThis.check()){
    //MessageManagerを取得
    IWDMessageManager msgmgr = wdThis.wdGetAPI().getComponent().getMessageManager();
    //メッセージを出力
     msgmgr.reportContextAttributeMessage(
    wdThis.wdContext.currentMyDataElement(), // エラーメッセージにリンクしているUIエレメント
    wdThis.wdContext.nodeMyData().getNodeInfo().getAttribute("Name"), // チェック項目
    IMessageUIComp.DBUPDERROR, // MessagePoolに登録されるメッセージキー
    null,
    true);
    }

     


  • WDJ 0 Votes 104 閲覧数


    このトピックでは、WebdynproでのRFCモデル作成方法及び手順を取り上げて説明します。

    Model作成

    Webdynproでは、RFCの呼出にはaRFC用のModelを作成する必要がある。またModel作成の際に、
    モデルデータとメタデータオブジェクトをセットで定義する必要がある。
    aRFC呼出Modelの作成イメージを下図に示す。

    データバインド

    概要イメージ
    Webdynproでは、RFCのモデルデータをWebdynpro内で利用するには、Webdynpro のCustom Controllerへバインドする必要があります
    また、モデルデータをUIに表示するには、さらにView Controllerへバインドする必要があります
    RFCモデルデータのバインドイメージを下図に示す。

    RFC I/F呼出

    // 通貨単位取得 String waers = wdThis.getWaers(); // ex: USD // 通貨単位の小数桁数を取得 BAPI_CURRENCY_GETDECIMALSModel model = new BAPI_CURRENCY_GETDECIMALSModel(); Bapi_Currency_Getdecimals_Input input = new Bapi_Currency_Getdecimals_Input(model); input.setCurrency(waers); wdContext.nodeBapi_Currency_Getdecimals_Input().bind(input); input.execute();

    String type = wdContext.currentReturnElement().getType();
    if (type.equals(MSGTYP_ERROR)) {
    IWDMessageManager msgMgr = wdComponentAPI.getMessageManager();
    sgMgr.reportException(wdContext.currentReturnElement().getMessage());
    }
    int curdecimals = wdContext.currentCurrency_DecimalsElement().getCurdecimals();

    ※wdContext.nodeOutput().invalidate()の呼出により、RFCの処理結果はWebdynproで取得可能になる

     


  • WDJ 0 Votes 208 閲覧数


    このトピックでは、ポップアップ処理を取り上げて、そのプログラミング方法を説明します。

    Confirmation Dialog

    Confirmation DialogはWDJ標準ライブラリに組み込まれていますので、そのまま利用可能です。

    プログラムの構造は主にいかのようになります。

    Yes, Noに該当するevent handler処理を記述しておくConfirmation Dialogを作成Yes, Noに該当するevent handlerを定義すConfirmation Dialogを表示

    サンプルソースは以下です。

    // 追加されたイベント(Yesボタンがクリックされたときの動き) public void Yes(com.sap.tc.webdynpro.progmodel.api.IWDCustomEvent wdEvent ) { //@@begin Yes(ServerEvent) logger.infoT("Yes button is clicked."); //@@end } //@@begin createConfDialogWindow() IWDWindowManager winMan = wdComponentAPI.getWindowManager(); IWDControllerInfo viewCtrlInfo = wdComponentAPI.getComponentInfo(). findInViews("WelcomeView").getViewController(); IWDEventHandlerInfo evtHndlr = viewCtrlInfo.findInEventHandlers("Yes"); IWDConfirmationDialog confDialog = winMan.createConfirmationWindow( "本当にいいですか?", evtHndlr, "はい"); evtHndlr = viewCtrlInfo.findInEventHandlers("No"); confDialog.addChoice(evtHndlr, "いいえ"); confDialog.show(); //@@end 画面付きモーダルダイアログ

    画面付きポップアップウィンドウとはWDJ部品の中でウィンドウをポップアップとして表示することを指します。
    ポップアップウィンドウの制御はコンポーネントコントローラーまたはカスタムコントローラーのに定義すします。

    サンプルソースは以下です。

    public void openPopup( ) { //@@begin openPopup() if (popup == null) { // ウィンドウ取得 IWDWindowInfo windowInfo = wdComponentAPI.getComponentInfo().findInWindows("PopupWin"); // モダルウィンドウ生成 popup = wdComponentAPI.getWindowManager().createModalWindow(windowInfo); } // ポップアップウィンドウを開く popup.show(); //@@end } ... public void closePopup( ) { //@@begin closePopup() // ポップアップウィンドウを閉じる popup.hide(); //@@end } ... //@@begin others // ローカルウィンドウオブジェクト private IWDWindow popup; //@@end 別画面表示

    別画面表示はURLを元に別ブラウザーを開くことを指します。
    他のWDJアプリケーションを起動する「IWDDeployableObject」と「WDURLGenerator」を利用して実装します。

    サンプルソースは以下です。

    // アプリケーションからIWDDeployableObjectを取得 IWDDeployableObject dObject = wdComponentAPI.getApplication().getDeployableObjectPart().getDeployableObject(); // 実行するWDJアプリケーション名を指定  String url = WDURLGenerator.getApplicationURL(dObject.getApplication("Contract00601App"));      // 外部ブラウザーで開く IWDWindow window = wdComponentAPI.getWindowManager().createNonModalExternalWindow(url); window.show(); 他のWEBアプリケーション起動

    同一サーバで存在するServlet等の場合、相対パースでURLを指定し、対象URLにPOST/GETでパラメータを渡す必要がある場合は「WDURLGenerator」を利用してパラメータを渡します。

    サンプルソースは以下です。

    // Mapでパラメータ値設定 Map<String, Object> urlParameters = new HashMap<String, Object>(); urlParamaters.put("id","1234"); // パラメータ生成、文字コードがnullの場合、UTF-8変換

    String query = WDURLGenerator.getQueryString(urlParamaters, "Shift-JIS");
      
      // 外部ブラウザーで開く, URL, パラメータ, POST(true)/GET(false)をパラメータ設定
      // 想定パースは「/【DCのVendor名】~【DC名】/実行対象」で構成され、DC名に「/」が存在する場合、「~」に変換する。
    IWDWindow window = wdComponentAPI.getWindowManager().createNonModalExternalWindow(
    "/jp.co.asahikasei~yvw~jee~wm_excel_0001/download", query, true);
    window.show();
    // 別ウィンドウで開く
    IWDWindow window = wdComponentAPI.getWindowManager()
    .createNonModalExternalWindow(urlToTargetApp);
    // ウィンドウプロパティの設定
    window.setWindowSize(800, 480);
    window.setWindowPosition(100, 50);
    // アドレスバーの削除
    window.removeWindowFeature(WDWindowFeature.ADDRESS_BAR);  

    window.show();


  • WDJ 0 Votes 106 閲覧数


    (このトピックは編集中です)

    ファイルアップロード

    Resource attributeを定義
    Contextにタイプcom.sap.ide.webdynpro.uielementdefinitions.ResourceのValue Attributeを追加します。
    FileUpload UIを追加する
    アップロード後の情報を取得

    IWDResource iwdr = (IWDResource)wdContext.getCurrentElement().getAttributeValue("Resource"); logger.infoT(iwdr.getResourceName()); logger.infoT(iwdr.getResourceType().getFileExtension()); logger.infoT(iwdr.getResourceType().getHtmlMime()); ファイルダウンロード

    Resource attributeを定義
    Contextにタイプcom.sap.ide.webdynpro.uielementdefinitions.ResourceのValue Attributeを追加します。
    FileDownload UIを追加
    FileDownload UIを追加し、resourceプロパティにResource attribute valueを指定すす

     


  • WDJ 0 Votes 124 閲覧数


    入力補助機能として検索ヘルプまたは入力値提案を実装することができます。

    単純型検索ヘルプ

    UIエレメント「DropDownByKey」を利用して実装する。標準設定によって項目数が50を超える場合、ポップアップ検索ヘルプとして表示されます。
    該当設定方法は「RadioButtonGroupByKey」も同一です。

    静的設定

    固定値で項目一覧を設定する場合のみ使用します。
    UIエレメント「DropDownByKey」のプロパティ「selectedKey」にマッピングされているコンテキストアトリビュートのタイプにシンプルタイプを設定して、「Enumeration」項目に項目一覧を追加する。

    動的設定

    値を動的に設定する場合、使用する。
    UIエレメント「DropDownByKey」のプロパティ「selectedKey」にマッピングされているコンテキストアトリビュートに対してコーディング処理を行う。
    該当ロジックはコンテキストを定義したコントローラーに実装する。
    ※コンテキストを参照しているコントローラーに実装した場合、「must not modify the datatype of a mapped attribute」エラーが発生する。

    // コンテキストからModifiableSimpleValueSet オブジェクトを取得 com.sap.typeservices.IModifiableSimpleValueSet<String> valueSet = wdContext.currentHeader01Element().getAttributePointer(IPublicContract006Comp.IHeaderElement.CATEGORY). getAttributeInfo().getModifiableSimpleType().getSVServices().getModifiableSimpleValueSet();

    // ESまたはBAPIのドロップダウンを設定
    List<Category> list = zprocessInit.getT_Category();
    for(Category category : list ) {
    valueSet.put(category.getKey(), category.getText());
    }
    // ドロップダウンの初期値を設定する場合
    wdContext.currentHeaderElement().setCATEGORY(list.get(0)); 複合機能型検索ヘルプ

    検索条件付きの検索機能を表す。複合機能型検索ヘルプはWDJのObject Value Selector(OVS)機能を利用した共通部品として実装され、
    各業務画面から利用します。
    検索用のヘルプ標準部品を利用
    OVSは検索で使用するノードと処理ロジックだけ追加することで簡単に検索ヘルプを追加することができます。
    自動生成されるOVSで使用する検索条件用ノードと検索結果用ノードは用意する必要があります。
    ・OVS設定処理ロジック
    OVS用のノードとOVSリスナーを利用してOVSを設定します。


    // 検索ヘルプを設定するコンテキスト
    com.sap.tc.webdynpro.progmodel.api.IWDAttributeInfo[] ovsStartUpAttributes
    = {wdContext.nodeHead().getNodeInfo().getAttribute(IPrivateOVSView.IHeadElement.PROCESS_TYPE)};
    // OVSの処理リスナー (クラス定義必要)
    com.sap.tc.webdynpro.progmodel.api.IWDOVSContextNotificationListener listener
    = new TestOVSContextNotificationListener ();
    // OVSの設定処理
    com.sap.tc.webdynpro.progmodel.api.WDValueServices.addOVSExtension(
    "TestOVS",       // OVS名称ー任意
    ovsStartUpAttributes,   // 検索ヘルプ設定対象
    wdContext.nodeInput(),  // 検索条件ノード
    wdContext.nodeOutput(), // 検索結果ノード
    listener        // リスナーオブジェクト
    );

    ・OVSリスナークラス定義
    インタフェースIWDOVSContextNotificationListenerを実装してOVSの実行時呼び出されるクラスを定義し、OVSの設定で利用される。


    private class TestOVSContextNotificationListener implements
    com.sap.tc.webdynpro.progmodel.api.IWDOVSContextNotificationListener{
    // OVSの初期検索条件の値設定ロジック
    public void applyInputValues(com.sap.tc.webdynpro.progmodel.api.IWDNodeElement applicationNodeElement,
    com.sap.tc.webdynpro.progmodel.api.IWDNodeElement queryInputNodeElement) {
    queryInputNodeElement.setAttributeValue(
    IPublicTest04Comp.IInputElement.PROCESS_TYPE,
    applicationNodeElement.getAttributeValue(IPrivateOVSView.IHeadElement.PROCESS_TYPE));
    }
    // 検索処理の実装
    public void onQuery(com.sap.tc.webdynpro.progmodel.api.IWDNodeElement queryInputNodeElement,
    com.sap.tc.webdynpro.progmodel.api.IWDNode queryOutputNode) {
    // 検索ロジック
    for(int i = 10; i < 20; i++) {
    IWDNodeElement element = queryOutputNode.createAndAddElement();
    element.setAttributeValue(
    IPublicTest04Comp.IOutputElement.PROCESS_TYPE, "11" + i);
    element.setAttributeValue(
    IPublicTest04Comp.IOutputElement.PROCESS_TYPE_NAME, "テストタイプ1111" + i);
    }
    }
    // 検索結果の行を選択した後の処理
    public void applyResult(com.sap.tc.webdynpro.progmodel.api.IWDNodeElement applicationNodeElement,
    com.sap.tc.webdynpro.progmodel.api.IWDNodeElement queryOutputNodeElement) {
    // start copying the attributes
    applicationNodeElement.setAttributeValue(
    IPrivateOVSView.IHeadElement.PROCESS_TYPE,
    queryOutputNodeElement.getAttributeValue(IPublicTest04Comp.IInputElement.PROCESS_TYPE));
    }

    検索用のヘルプカスタム部品を作成
    IWDOVSProviderとIWDOVSDialogを実装したクラスを利用して別ウィンドウとビューを持つOVS画面を作成できます。
    ・OVS設定処理ロジック
    カスタム部品は別のウィンドウとビューを保持するので、OVS用のノードとOVSリスナーの代わりにOVSプロバイダ及びOVSダイアログを利用する。
    設定ロジックは一般的にコンポーネントコントローラーまたはカスタムコントローラーのwdDoInitに実装します。


    // 検索ヘルプを設定するコンテキスト
    com.sap.tc.webdynpro.progmodel.api.IWDAttributeInfo[] ovsStartUpAttributes
    = {wdContext.nodeHead().getNodeInfo().getAttribute(IPrivateOVSView.IHeadElement.PROCESS_TYPE)};
    // OVSプロバイダ (クラス定義必要)
    com.sap.tc.webdynpro.progmodel.api.IWDOVSProvider provider = new TestOVSProvider();
    // OVSの設定処理
    com.sap.tc.webdynpro.progmodel.api.WDValueServices.addOVSExtension(
    "TestOVS",       // OVS名称ー任意
    ovsStartUpAttributes,   // 検索ヘルプ設定対象
    provider,   // OVSプロバイダ
    null       
    );

    ・OVSプロバイダ及びOVSダイアログクラス定義
    インタフェースIWDOVSProviderを実装したOVSプロバイダはOVSダイアログ情報を保持しています。


    private class TestOVSProvider implements IWDOVSProvider {

    OVSDialg dialog;
    IWDOVSControl ovsControl;

    // OVSウィンドウを生成して返す
     @Override
     public IWDOVSDialog createOVSDialog(IWDOVSControl ovsControl) {
      dialog = new OVSDialg();
      this.ovsControl = ovsControl;
      return dialog;
     }
    // 明示的にウィンドウを閉じる場合、使用
     public void closeWindow() {
      dialog.closeWindow();
     }
    // OVSコントロール情報が必要な場合、使用
    // OVSを呼び出したアトリビュート情報等
     public IWDOVSControl getControl() {
      return this.ovsControl;
     }

    }

    インタフェースIWDOVSDialogを実装したOVSダイアログはOVSウィンドウのオブジェクトを持っている。


    private class OVSDialg implements IWDOVSDialog {
    IWDWindow window;
     
    // ウィンドウを「閉じる」ボタンを押すタイミングで呼び出される
      @Override
      public void exit() {
      // TODO Auto-generated method stub
      }
       // OVSヘルプとして使用するウィンドウを返す
      @Override
      public IWDWindow getWindow() {
       IWDWindowInfo windowInfo =
          (IWDWindowInfo)wdComponentAPI.getComponentInfo().findInWindows("TestCompWindow");
       window = wdComponentAPI.getWindowManager().createModalWindow(windowInfo);
       return window;
      }
    // ウィンドウを閉じる処理として明示的にウィンドウを閉じる場合、使用
      public void closeWindow() {
       window.destroyInstance();
      }
    } 入力値提案

    データの一部を入力すると入力値にヒットするデータが一覧として表示されます。

    UIエレメント「InputField」の「suggestValues」を「true」に設定してマッピングしたコンテキストアトリビュートには「単純型検索ヘルプ」と同一のコディングまたはシンプルタイプマッピングを行います。


  • WDJ 0 Votes 103 閲覧数


    このトピックでは、WDJ開発における各基本UIエレメントを取り上げて説明します。(このトピックは編集中です。)

    Label

    用途 
    他のUIエレメントのラベルとして表示される。
    関連付けのUIエレメントのプロパティ「state」が「required」になっている場合、必須マークが表示される。
    主要プロパティ

    プロパティ設定可能値説明labelForUIエレメントID関連付けUIエレメントのIDを設定designemphasized light standard強調表示に設定 「:」なしに設定 基本表示textテキスト関連付けUIエレメントのIDを設定Value Help

    Web DynproのValue Help
    ① Simple Value Selector(SVS)
    ② Extended Value Selector(EVS)
    ③ Object Value Selector(OVS)
    help.sap.com - Value Help Tutorials

    外部リンクUI Element Guide - SAP Help Portal


  • EP 0 Votes 116 閲覧数


    このトピックでは、例を取り上げて手順に従ってポータルロールの作成方法を説明します。

    ポータルロールの作成1.ロールを新規作成

    コンテキストメニューで「New」-「Role」を選択

    2.ロールの属性を入力

    ロールの名前、IDなどの属性を入力します。

    3.ロールの作成を完了

    ポータルロールの編集4.ロールを編集

    5.ワークセットをロールに追加

    対象のワークセットをロールにコピーします。ロールは階層構造をもてるため、なかに自由にサブフォルダを作成することができます。

    6.もう一つのワークセットを追加しておく

    7.EntryPointをTrueにしておく

    ポータルロールの割当

    テストのため、上記に作製したロールをAdministratorに割り当てておきます。

    ポータルロールの表示

    Administratorでログインして、割り当てられたロールの表示を確認します。


  • EP 0 Votes 94 閲覧数


    このトピックでは、例を取り上げて手順に従ってワークセットの作成方法を説明します。

    ワークセットの作成1.ワークセットを新規作成

    コンテキストメニューで「New」-「Workset」を選択

    2.ワークセットの属性を入力

    ワークセットの名前、IDなどの属性を入力します。

    3.ワークセットの作成を完了

    ワークセットの編集4.ワークセットを編集

    5.ページをワークセットに追加

    ページやiViewをワークセットに追加します、ワークセットは階層構造を取れますので、必要に応じて中にフォルダを作成することができます。

    6.ワークセットの編集を完了

    その他

    もう一つのワークセットを作成しておきます。


  • EP 0 Votes 85 閲覧数


    このトピックでは、例を取り上げて手順に従ってページの作成方法を説明します。

    ページの作成1.ページを新規作成

    コンテキストメニューで「New」-「Page」を選択

    2.ページの属性を入力

    ページの名前、IDなどの属性を入力します。

    3.ページのテンプレートを選択

    例では「WebDynpro Proxy Page」にします。

    4.ページのレイアウトを選択

    例では「T-Layout」にします。

    5.ページの作成を完了

    コンテンツの編集5.ページのコンテンツを編集

    6.iViewをページにコピー

    プレビュー

     


  • EP 0 Votes 149 閲覧数


    このトピックでは、例を取り上げて手順に従ってiViewの作成方法を説明します。

    1.iViewを新規作成

    コンテキストメニューで「New」-「iView」を選択

    2.iViewの作成方法を選択

    例では「Web Dynpro Java Applicaiton」から作成するようにします。

    3.アプリケーションサーバを指定

    ポータルが動くアプリケーションサーバと別のアプリケーションサーバ上のアプリケーションを組み込むことも可能ですが、例では「Local」にします。

    4.アプリケーションを指定

    対象のWeb Dynpro Javaアプリケーションを選択します。例では統合ワークリストの一覧表示画面の「UWL」を指定します。

    4.iViewの属性を入力

    iViewの名前、IDなどの属性を入力します。

    5.iViewの作成を完了

    6.その他のiViewを作成しておく

    「UWL」のほかに、統合ワークリストの個人表示設定画面とユーザ情報表示画面のアプリをそれぞれiViewとして作成しておきます。


  • EP 0 Votes 131 閲覧数


    このトピックでは、 UWLサービスのアクセス方法を取り上げて説明します。

    UWLサービスの取得Portal利用 IUWLService uwlService = (IUWLService) WDPortalUtils.getServiceReference(IUWLService.ALIAS_KEY); PortalRuntime.getRuntimeResources().getService(IUWLService.ALIAS_KEY); JNDI利用   // look up UWL service private   IUWLService findService() throws NamingException {     Properties env = new Properties();           env.put(InitialContext.INITIAL_CONTEXT_FACTORY, "com.sapportals.portal.prt.registry.PortalRegistryFactory");           // create initial context           InitialContext ctx = new InitialContext(env);           // retrieve UWL service           IUWLService uwlService = (IUWLService) ctx.lookup("/broker/services/" + IUWLService.ALIAS_KEY); return uwlService;   } ワークアイテムの走査 public void retriveItems() {

    try {
                // look up UWL service
                IUWLService uwlService = findService();
                // define session timeout period
                final int sessionIdleTimeout = 60;
                // create context
                UWLContext uwlContext = new UWLContext();
                // find logged in user.
                IUser user = //TODO Get the user for whom the items are to be retrieved.
                uwlContext.setUser(user);
                uwlContext.setLocale(Locale.getDefault());
                // begin session IUWLSession uwlSession;
                uwlSession = uwlService.beginSession(uwlContext, sessionIdleTimeout);
                uwlContext.setSession(uwlSession);
                IUWLItemManager itemManager = uwlService.getItemManager(uwlContext);
                QueryResult result = itemManager.getItems(uwlContext, null, null);
                ItemCollection items = result.getItems();
                 Item item = null;
                for (int i = 0; i < items.size(); i++) {
                  item = items.get(i);
                  // item.getSubject() can give you Task's Subject string
                  // item.getAttribute("taskId").getStringValue() gives you taskId
                  // (a check for null should be added also to avoid NullPointerException).
                  Map params = new HashMap();
                  params.put("taskId", item.getExternalId());
                  String executionURL = WDURLGenerator.getApplicationURL("sap.com/tc~bpem~wdui~taskinstance", "ATaskExecution", params);
                  //TODO Add code send mail which contains above URL.
                }
        } catch (UWLException e) {
                e.printStackTrace();
              } catch (NamingException e) {
                e.printStackTrace();
              }
      }

     


  • EP 0 Votes 73 閲覧数



    (このトピックは編集中です)

    委譲委譲のアクション

    委譲ユーザの選択

    UMEのSimpleSearch機能が使用されているため、動きが以下のようになります。

    アクティブでないユーザも検索されます会社による制限は機能しません代理

    代理ルールの設定

    代理ルールに関するメニューが表示されるには、下記の二つのことが発生することが必要です。

    代理ルールが存在することUWL Cacheに代理されたアイテムがあること代理ユーザの検索

    アクティブなユーザのみが検索されます。