投稿

2020の投稿を表示しています

ABAP:ENQUEUE_E_TABLE

①テーブルデータのロック CONCATENATE sy-mandt lv_matnr INTO lv_mara_key.  " Lock object  CALL FUNCTION 'ENQUEUE_E_TABLE'      EXPORTING       MODE_RSTABLE = 'E'       tabname  = 'MARA'       varkey   = lv_mara_key      EXCEPTIONS        foreign_lock = 1     system_failure = 2     OTHERS = 3.  IF SY-SUBRC <> 0.     LW_MSGV1= SY-MSGV1.   LW_MSGV2= SY-MSGV2.   MESSAGE XXX WITH SY-REPID  LW_MSGV1  LW_MSGV2    DISPLAY LIKE 'E'.   " &1はユーザ&2によりロックされています(キー:&3)   LEAVE LIST-PROCESSING. ENDIF. " Unlock object  CALL FUNCTION 'DEQUEUE_E_TABLE'      EXPORTING       MODE_RSTABLE = 'E'       tabname  = 'MARA'       varkey   = lv_mara_key      EXCEPTIONS       forei...

ABAP:データファイルのアップロードとダウンロード

  ■ サーバファイル  ① データファイルの保存先を取得(論理バス(T-cd:file) → 物理パス)  CALL FUNCTION 'FILE_GET_NAME_USING_PATH'     EXPORTING       LOGICAL_PATH                     = LOGIC_FILEPATH  " 論理バス       FILE_NAME                        = LOGIC_FILENAME  " ファイル名     IMPORTING       FILE_NAME_WITH_PATH              = PHYS_FILEPNAME          " 物理パス+ファイル名     EXCEPTIONS       PATH_NOT_FOUND                   = 1       MISSIN...

CDS+Odata课程纪要

CDS+Odata  2020/5/16 15:00-18:30 CDS使用场景: 1.复杂的检索条件 2.统计型的检索,因为cds有聚合功能 3.利用CDS作为数据库 CDS开发基础 开发工具:Eclips(需要添加CDS的插件)                设定SAPGUI的链接,登陆SAP 常用语法: 选择aba XXX other创建对象。(define view) @AbapCatalog部分的填写 Key的添加后,激活,姐可以使用了。 SAPGUI的view里面可以找到做好的cds view。 .单表查询 define view z01test001 as select from ekko {   key ekko.ebeln,          ekko.bukrs } .inner join 只有Key指定的项目才能作为检索结果 ex: define view z01test002 as select from ekko   innor join ekpo on ekko.ebeln = _ekpo.ebeln  {   key ekko.ebeln,          ekpo.ebelp } .associantion 可有key指定,也可以所有associantion定义的表,没有在key里指定的话,检索结果中不会出现。 ex: define view z01test003 as select from ekko associantion [*] to ekpo as _ekpo  on $projection.ebeln = _ekpo.ebeln  { key ekko..ebeln,   “ 表示        _ekpo.ebelp, ”表示   ...

ABAP:Difference between cl_gui_alv_grid and cl_salv_table

https://answers.sap.com/questions/3943045/difference-between-clguialvgrid-and-clsalvtable.html 1.diff: l_salv_table is advamced than cl_gui_alv_grid . you will have some extra functionalities in cl_salv_table Check this Document. https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/eac1fa0b-0e01-0010-0990-8530de4908a6 2. 変換   Exit  の使用法 https://help.sap.com/saphelp_46c/helpdata/ja/33/206bc8012e11d3b495006094192fe3/content.htm?no_cache=true プロセスフロー 項目の内部長と外部長を   ALV  グリッドコントロールに対して宣言します。 DDIC  を参照する項目の場合、   ALV  グリッドコントロールによって自動的に内部長と外部長が使用されます。 ※勝手にALVデータを内部⇒外部に変換すると、項目フィルタ時、コードが数値の場合、フィルタができなくなる。(例えば、仕入先コード) DDIC  を参照しない項目の場合、項目カタログの項目   INTLEN   を使用して内部長を指定し、項目   DD_OUTLEN  を使用して外部長を指定する必要があります   (   DDIC  を参照しない項目のパラメータ を参照   )   。 項目カタログの項目   EDIT_MASK   を使用して変換   Exit  を指定します   (   列の内容の書式設定 を参照   )   。 一覧...

ABAPSE12 更新ビュー作成手順

更新ビュー作成手順 ①      TCODE:SE12 DBテーブルを選択して、ディクショナリ:テーブル照会画面に入ります。 ②      照会→変更に切替、メニューバー → ユーティリティ → テーブル更新ジェネレータ テーブル更新ダイアログ登録画面に入ります。 ③      テーブル更新ダイアログ登録画面に下記の項目を記入します。 ・権限グループ          テーブルまたビューの内容を更新する権限を持ったユーザグループです。 ・汎用グループ          テーブルまたはビューに固定の更新ダイアログコンポーネントを生成する際に使用する汎用グループです。                         汎用モジュールの登録は必要に応じて行われます。 ・更新タイプ            1ステップまたは2ステップのダイアログです。                         1ステップのダイアログは、全ての項目を含む概要画面のみによって構成されます。             2ステップのダイアログの場合、概要画面には、キーと20文字を超える長さを持ったテキスト項目のみが表示されます。                            詳細画面にはすべての項目が表示されます。 ・更新画面番号          各更新画面の内部番号です。検索機能を使用すれば、入力可能値を取得することができます。 ④      保存、有効化 ※...

ABAP:SE11 テーブル作成時、注意点

SE11 テーブル作成時注意点                                                                               ①テーブル定義に check Table の設定による、更新ビューで入力値のチェックが行われること。 ②テーブル定義に 検索ヘルプ に関して、データ型、check Tableによる 入力ヘルプのデータソース がつけられない場合、手動追加。役割として、 更新ビューにヘルプ機能利用可能になる ③SM30でメンテナンスしたい場合、メニューの「ユーティリティ」の 「テーブル更新ジェネレータ」を新規追加すること    ■概要  T-Code:SM30よりビュー経由でテーブルを更新をするための画面を作成するツールのこと。 主に、アドオンテーブルを登録した際に中身の...

ABAP:Dynpro基本手順

1.プログラムの登録 [Tr-cd:SE38 or SE80]   プログラム名:SAPMZ******   タイプ:M:モジュールプール 2.Dynproの登録 [Tr-cd:SE80 or SE51]    Dynproエレメントタブを表示し、エレメントタイプ'OK'の名称項目に値を設定    ここで設定した値をプログラムで判定処理に使用 3.Dynproの編集 [Tr-cd:SE80 ⇒ スクリーンペインタ] 4.GUIステータス 登録 [Tr-cd:SE80 or SE41] 5.GUI表題 登録 [Tr-cd:SE80] 6.PBO Module 作成 7.PAI Module 作成      MODULE module_name AT EXIT-COMMAND.      自動入力チェックを回避して、Dynproを終了する場合に使用      機能タイプEを設定された機能コード処理時に呼出される ※ 屏幕上的输入框或者表格,都有着相对应结构或者内表,比如画屏幕时参考表VBAP建立的字段,在程序开头需声明TABLES: VBAP,之后在程序里使用VBAP-XXX,就和屏幕上的输入框绑定了。这里多说一句,目前TABLES定义已经是废弃语法,可以定义DATA: GS_VBAP TYPE VBAP,然后屏幕字段也改成GS_VBAP-XXX的做法来代替。 Dynpro Id:9010 *▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼TOP▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼* *テーブルコントロール定義 CONTROLS:TAB9010 TYPE TABVIEW USING SCREEN ‘9010’. *テーブルコントロール定義 TYPES:   BEGIN OF TYP_TAB9010,               FIELD1(10)            TYPE C, ...

ABAP:標準テーブルのデータ編集方法

①SE16N_INTERFACEで標準テーブルデータも更新可能 ②SE16N - &SAP_EDIT ※ある項目変更不可の場合がある

ABAP:]バックグラウンドジョブDEBUG

T-CD:SM37からバックグラウンドジョブをデバッグ実行可能です。 SM37のジョブ一覧画面でコマンドフィールドに"JDBG"と入力するだけでお手軽です。 画面イメージとかは下記Wikiを参照して下さい。 http://wiki.scn.sap.com/wiki/display/ERPFI/Debug+program+used+in+background 標準ではジョブ実行となってしまう処理をトレースするのに非常に便利です。 バックグラウンド実行プログラムをdebugする! 代表的な裏技は全部で3つ。 方法①②はコピープログラム作成が前提です。同じプログラムを何度もデバッグする場合に向いています。 また、直接コードを修正するので注意が必要であり、ブラックボックスである標準プログラムには向きません。 方法③は、一番簡易で現実的な方法です。標準プログラム、アドオンプログラム問わず最も効率的な方法です。 方法① SY-BATCH行をコメントアウト バックグラウンド実行プログラムには以下のようなコードがあります。 CHECK SY-BATCH IS NOT INITIAL.  バックグラウンド実行プログラムが、バックグラウンド実行しかできないのはこのコードがあるからです。 SY-BATCHはバックグラウンド実行の場合に「X」が格納されます。もし、ここに「X」が格納されていれば、 そのプログラムは「バックグラウンド実行されている」ことになりますし、 ブランクであれば「オンライン実行」されているということになります。 先ほどの1行で、SY-BATCHが空白でないこと、つまりバックグラウンド実行でプログラムが動かされていることを、 このコードで制限しているわけです。 ので、このコードがなければバックグラウンド実行のみが許可されているプログラムでもオンライン実行が可能になり、 デバッグができるようになります。 したがって、「SY-BATCH」が含まれる行をコメントアウトすればデバッグができるようになります。 ※システム項目?という方はこちら。 方法② SY-BATCHに「X」を入れる 前述したように、バックグラウンド実行しかできないプログラムは、SY-BATCHの値によって制限しています。 つま...