峯文さんの投稿
プログラミング基礎に投稿されました 続きを読む

ABAP言語の世界では、文が命令と呼ばれています。

ABAPの文(命令)はキーワードで始まり、プリオド(「.」)で終了します。

カテゴリ命令役割
宣言命令TYPESデータ型を定義します-
DATAデータオブジェクトを宣言します-
TABLES--
制御命令IFIF-ELSE-ENDIF選択制御構造を実装する-
ELSE-
ELSEIF-
ENDIF-
CASECASE-WHEN-ENDCASE選択制御構造を実装する-
WHEN-
ENDCASE-
DODO-ENDDO反復制御構造を実装する-
ENDDO-
WHILEWHILE-ENDWHILE反復制御構造を実装する-
ENDWHILE-
呼出命令PERFORMサブルーチンを呼び出す-
CALL FUNCTION汎用モジュールを呼び出す-
CALL DIALOGダイアログモジュールを呼び出す-
CALL METHODABAPオブジェクトのメソッドを呼び出す-
CALL METHOD OFOLE2オブジェクトのメソッドを呼び出す-
CALL SCREEN画面を呼び出す-
CALL SELECTION-SCREEN選択画面を呼び出す-
CALL TRANSACTIONトランザクションを呼び出す-
SUBMITタイプ 1 の実行可能プログラムを呼び出す-
LEAVE SCREEN現在の画面の処理を中止し、次の画面を呼び出す-
LEAVE TO SCREEN現在の画面の処理を中止し、動的に定義された次の画面を呼び出す-
LEAVE [PROGRAM]現在のプログラムの処理を停止し、このプログラムが呼び出されたポイントに戻る-
LEAVE TO TRANSACTION--
モジュール化命令AT SELECTION SCREEN--
START-OF-SELECTION--
AT USER-COMMAND--
FORMサブルーチンの定義を開始する-
ENDFORMサブルーチンの定義を終了する-
FUNCTION汎用モジュールの定義を開始する-
ENDFUNCTION汎用モジュールの定義を終了する-
MODULE--
ENDMODULE--
操作命令WRITE--
MOVE--
ADD--
COMPUTE--
オープンSQLSELECTデータベーステーブルからのデータの読込-
INSERTデータベーステーブルへの行の追加-
UPDATEデータベーステーブルの行コンテンツの変更-
MODIFYデータベーステーブルへの行の追加、または既存行のコンテンツの変更-
DELETEデータベーステーブルからの行の削除-
OPEN CURSOR
FETCH
CLOSE CURSOR
カーソルによるデータベーステーブルからの行の読込-
ネイティブSQLEXEC SQL
ENDEXEC
データベース固有のコマンドが全てできる-
UI制御命令SET SCREEN次の画面を設定する-
SET TITLEBAR画面タイトルを設定する-
SET PF-STATUSGUIステータスを設定する-
SET CURSOR画面上でカーソルを設定する-
SET MARGIN印刷ページのマージンを設定する-

複数の命令は最初の部分が同じであれば、1 つのチェーン命令で連結して書くことができます。 一連の命令を連結するには、同一部分を 1 回だけ書き、その後にコロン(:) を入れます。コロンの後に、個別命令の残りの部分を書いて、それぞれをカンマで区切ります。最後の部分の後にピリオド (.)を付けます。

ABAP言語の世界で、ブロックは命令ブロックと呼ばれています。 命令ブロックは制御種類により以下のように分類することができます。

分岐

If-then文

IF <条件式> 
<命令ブロック> 
ENDIF.

If-then-else文

IF < 条件1>.
  < 命令ブロック>
ELSEIF < 条件2>
  < 命令ブロック>.
ELSEIF < 条件3>.
  < 命令ブロック>
.....
ELSE.
  < 命令ブロック>
ENDIF.    

Case-when文

Switch文    CASE <f>.
  WHEN <f11> [OR <f12> OR ...].
       < 命令ブロック>
  WHEN <f21>.[OR <f22> OR ...]
       < 命令ブロック>
  WHEN ...
  ......
  WHEN OTHERS.
       < 命令ブロック>
ENDCASE.    

ループ

Do文

DO [<n> TIMES] [VARYING <f> FROM <f1> NEXT <f2>].
  < 命令ブロック>
ENDDO.

While文

WHILE < 条件> [VARY <f> FROM <f1> NEXT <f2>].
   < 命令ブロック>
ENDWHILE.

例外

* Try-catch-endtry  
* Try-catch-cleanup-endtry			
プログラミング基礎に投稿されました 続きを読む

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

式とは

式というのは結果として値を返すものです。

ABAPは命令ベースの言語であり、命令文に式を使うことができます。

式の構成

式は1つ以上のオペランド、ゼロ以上の演算子、およびゼロ以上の括弧の組み合わせから成ります。 オペランドと演算子や括弧の間に必ずスペースをあけなければなりません。

式の種別

ABAPの式はおもに以下のものがあります。

  • 算術式
  • 論理式

算術式とは

算術式とは、算術演算を行う式です。 算術式は結果として単一の算術値をもたらします。

実行順序

ABAPでは、算術式を以下の順序で解釈します。

  1. 括弧内の式
  2. 関数
  3. ** ( 累乗)
  4. *、/、MOD、DIV ( 乗算、除算)
  5. +、- ( 加算、減算)

算術式の結果代入

式の計算結果を変数に代入するには、COMPUTE 命令または代入演算子(=) を使用します。

COMPUTE <n> = <expression>.

COMPUTE はオプションなので、以下のように命令を記述することもできます。

<n> = <expression>.

<expression> で指定した算術演算の結果は、項目 <n> に代入されます。

論理式とは

論理式とは、真偽値を返す式です。

関係演算子の使用

関係演算子を使用する論理式では、2つのオペランドが関係演算子を使用する関係式にリンクしています。

論理式では、関係演算子に従って、2つのオペランドの内容が比較されます。

論理式の結合順序

ABAPでは、AND、OR 、NOTを使うことで、いくつかの論理式をつの論理式にまとめることができます。 結合は以下の順序で解釈します。

  1. 括弧
  2. NOT
  3. AND
  4. OR

論理式の結果代入

ABAPには値が真または偽のブールデータ型がないため、論理式を変数に代入することができません。

論理式の使用

論理式は、プログラムフローの制御に使用されます。

プログラミング基礎に投稿されました 続きを読む

 

このトピックでは、ABAP言語の定数と変数を取り上げて説明します。

ABAP定数は、CONSTANTS 命令を使用して宣言します。

CONSTANTS <name> TYPE <type> VALUE [<value> | IS INITIAL]

CONSTANS 命令の構文は、以下の例外を除いて DATA 命令とまったく同じです。

  • CONSTANTS命令では VALUE オプションを使用しなければなりません。
    VALUE オプションで指定した開始値をプログラムの実行中に変更することはできません。
  • XSTRINGS 、参照、内部テーブル、または内部テーブルを含む構造に対して定数を定義することはできません。

ABAP定数は、DATA命令を使用して宣言します。

DATAS <name> TYPE <type> VALUE [<value> | IS INITIAL]

完全に定義されたデータ型<type>の他に、もう1つのデータオブジェクト<obj>と同じデータ型の変数<f>を宣言することもできます。

データ型は定義される場所により、スコープが変わります。

  データ型変数定数
スコープグローバル(システムレベル)○※1××
グローバル(プログラムレベル)○※2○※2○※2
ローカル○※3○※3○※3
生存期間自動記憶域期間-○※4-
静的記憶域期間-○※5-
  • ※1
    ABAPディクショナリーで定義されているデータ型は、全てのABAPプログラムで参照することが可能です。
  • ※2
    ABAPプログラムの「グローバルデータ宣言部分」で定義されているデータ型、変数及び定数は、当プログラムの中でどこでも参照することができます。
  • ※3
    ABAPプログラムのプロシージャの中で定義されているデータ型、変数及び定数は、当プロシージャの内部でしか参照できません。
  • ※4
    プロシージャの中で定義された非statics変数の生存期間はプロシージャのの実行が完了するまでです。
  • ※5
    ABAPプログラムの「グローバルデータ宣言部分」で定義されている変数や、プロシージャの中で定義されたstatics変数の生存期間は、プログラムの実行開始から終了までです。

 

プログラミング基礎に投稿されました 続きを読む

このトピックでは、ABAP言語のデータ型を取り上げて説明します。

ABAP言語のデータ型階層を以下の図で示します。

組込みデータ型とも呼ばれます。 基本タイプは言語により事前定義されています。

カテゴリ初期項目長有効項目長初期値意味JAVAC#
数値I440整数intInt32(int)
F880浮動小数doubleDoubleクラス(double)
P81-1604ビットで一桁を表現し、最後の4ビットを使って符号と小数点を表現するBigDecimalクラスDecimal構造体
文字C11-65535’ … ’テキスト項目(英数字)StringクラスStringクラス(string)
D88'00000000'日付項目( 書式: YYYYMMDD)DateクラスDateTime構造体
N11-65535'0 … 0'テキスト項目(数字)StringクラスStringクラス(string)
T66'000000'時刻項目(書式: HHMMSS)TimeクラスDateTime構造体
バイトX11-65535'0 … 0'バイト項目--
XString0可変長--

参照タイプは、他のデータを参照するポイントのことです。

ABAPの複合タイプは構造体や内部テーブルがあります。typesコマンドより宣言することができます。

構造体

構造体とは,「いろいろな種類の互いに関連するデータをまとめて, 1つのかたまりにしたもの」です。 例えば、「コード、名称、単位、単価」などのデータを一品目分だけまとめて定義すれば、一つの構造体になります。

ABAPでは、構造体を構成する要素がコンポーネントと呼ばれています。 構造体の個別コンポーネントを参照するには、<structure name>-<component name>のように、構造名と要素名の間にハイフンを入れます。

内部テーブル

内部テーブルはABAP固有のデータ型であり、一言でいうと、メモリ上のデータベーステーブルのことです。

プログラミング基礎に投稿されました 続きを読む

非常に簡単に言うと、プログラムとは、区切り文字で区切られた一連のトークンです。 トークンとは、基本的な構文要素としてプログラム内で意味を持つテキストの最小単位であり、字句ともいいます。 トークンを組み合わせて、式や宣言や文を組み立てます。 文とは、プログラム内で実行可能なアルゴリズム動作を記述したものです。 式は、文の中に現れる構文単位で、1 つの値を表します。 宣言では、式や文の中で利用できる識別子(関数や変数の名前など)を定義し、必要に応じて識別子用のメモリを割り当てます。

このトピックでは、ABAP言語の文字集合を紹介し、以下のようなトークンを宣言するための構文を説明します。

  • 識別子
  • リテナル
  • 演算子
  • 区切文字
  • キーワード 
  • コメント

文字集合は,ソース・プログラムで使用可能か有効文字を定義します。 リリース 6.10 以降のABAPシステムは、ユニコード文字集合 とANSI文字集合が 両方ともサポートされるようになっております。

識別子は,次の項目の名前を表す文字シーケンスです。

  • 変数名
  • 定数名
  • 型名
  • サブルーチン名
  • クラス名
  • インタフェース名

識別子には,次の規則が適用されます。

  1. 長さが最大 30 文字です
  2. + . ,: ( ) を使うことができません
  3. すべて数字で構成することはできません

以下のようなリテナルがあります。

分類定義
文字列文字列リテラルは、一重の逆向き引用符 (`) に囲まれた文 字列であり、そのデータ型は STRING です'abc3d3’
数値数字リテラルは、(0 から 9 までの) 連続した数字で構成され、数字の直前に正 (+) または負 (-) の符号を付けることができます123
-93
+456
3455555555
小数部 がある数値や科学表記によ る数値をリテラルとして表 示できるようにするには、 文字リテラルを使用する必 要があります'1234567890567890'
'+0.58498'
'-8473.67'
'+12.3E-4'
日付'YYYYMMDD'フォーマットのような文字リテナルで定義する必要があります'20140218'
時間'HH24MMSS'フォーマットのような文字リテナルで定義する必要があります'133359'

演算子は1つ,または複数のオペランドでの演算を示すトークンであり,ある結果を返してきます。 演算子は以下のようなものがあります。

分類演算子用途 ABAP命令
代入=代入 MOVE~TO~
?=ワイドキャスト代入(参照型の場合 MOVE~?TO~
算術+加算 ADD~TO~
-減算 SUBTRACT~FROM~
*掛け算 MULTIPLY~BY~
/割り算 DIVIDE~BY~
**累乗 -
MOD整数除算の余り -
DIV整数除算 -
関係=, EQ等号 -
<>, NE不等号 -
<, LT未満 -
>, GT超過 -
⇐, LE以下 -
>=, GE以上 -
COContains Only -
CNContains Not Only -
CAContains Any: -
NAContains Not Any -
CSContains String -
NSContains No String -
CPCovers Pattern -
NPNo Pattern -
論理OR論理和 -
AND論理積 -
NOT否定 -
ビットBIT-ANDビット単位AND -
BIT-ORビット単位OR -
BIT-XORビット単位XOR -
BIT-NOTビット単位NOT -
リテナル&2つのリテラルを結んで1つのリテラルにする--

ABAPの文字のいくつかは区切り記号として使用され,構文および意味上で独自の機能を持っています

分類区切り記号用途
終端子.(ピリオド)文の終了-

ABAP言語で文は命令とよばれています。命令の先頭の ABAP 用語は ABAP キーワードです。 ABAPキーワードはある種のプログラ ミング言語でのように予約された名称ではありません。 命名規則で ABAP キーワードを使用するのは禁止され ていませんが、可能なら避 けてください。 以下はABAPキーワードの一覧表です。

ABAP-SOURCEABBREVIATEDABSABSTRACTACCEPT
ACCEPTINGACCORDINGACOSACTIVATIONACTUAL
ADDADD-CORRESPONDINGADJACENTAFTERALIASES
ALLALLOCATEANALYSISANALYZERAND
ANYAPPENDAPPENDAGEAPPENDINGAPPLICATION
ARCHIVEAREAARITHMETICASASCENDING
ASINASSERTASSIGNASSIGNEDASSIGNING
ATATANATTRIBUTESAUTHORITYAUTHORITY-CHECK
AVGBACKBACKGROUNDBACKUPBACKWARD
BADIBEFOREBEGINBETWEENBIG
BINARYBITBIT-ANDBIT-NOTBIT-OR
BIT-XORBLACKBLANKBLANKSBLOCK
BLOCKSBLUEBOUNDBOUNDARIESBOUNDS
BREAK-POINTBTBUFFERBYBYPASSING
BYTEBYTE-CABYTE-CNBYTE-COBYTE-CS
BYTE-NABYTE-NSBYTE-ORDERCCA
CALLCALLINGCASECASTINGCATCH
CEILCENTEREDCHAINCHAIN-INPUTCHAIN-REQUEST
CHANGECHANGINGCHAR-TO-HEXCHARACTERCHARLEN
CHECKCHECKBOXCIRCULARCLASSCLASS-CODING
CLASS-DATACLASS-EVENTSCLASS-METHODSCLASS-POOLCLEANUP
CLEARCLIENTCLIKECLOCKCLOSE
CNCOCODECODEPAGECODING
COL_BACKGROUNDCOL_GROUPCOL_HEADINGCOL_KEYCOL_NEGATIVE
COL_NORMALCOL_POSITIVECOL_TOTALCOLLECTCOLOR
COLUMNCOMMENTCOMMENTSCOMMITCOMMON
COMMUNICATIONCOMPARINGCOMPONENTCOMPONENTSCOMPRESSION
COMPUTECONCATENATECONDENSECONDITIONCONNECT
CONNECTIONCONSTANTSCONTEXTCONTEXTSCONTINUE
CONTROLCONTROLSCONVERSIONCONVERTCOPIES
COPYCORRESPONDINGCOSCOSHCOUNT
COUNTRYCOVERCPCPICREATE
CSCSEQUENCECURRENCYCURRENTCURSOR
CURSOR-SELECTIONCUSTOMER-FUNCTIONDDATADATABASE
DATAINFODATASETDATEDAYLIGHTDBMAXLEN
DD/MM/YYDD/MM/YYYYDDMMYYDEALLOCATEDECIMALS
DEFAULTDEFERREDDEFINEDEFININGDEFINITION
DELETEDELETINGDEMANDDEPARTMENTDESCENDING
DESCRIBEDESTINATIONDETAILDIALOGDIRECTORY
DISCONNECTDISPLAYDISPLAY-MODEDISTANCEDISTINCT
DIVDIVIDEDIVIDE-CORRESPONDINGDODUMMY
DUPLICATEDUPLICATESDURINGDYNAMICDYNPRO
EEDITEDITOR-CALLELSEELSEIF
ENABLEDENABLINGENCODINGENDEND-ENHANCEMENT-SECTION
END-LINESEND-OF-DEFINITIONEND-OF-FILEEND-OF-PAGEEND-OF-SELECTION
ENDATENDCASEENDCATCHENDCHAINENDCLASS
ENDDOENDENHANCEMENTENDEXECENDFORMENDFUNCTION
ENDIANENDIFENDINGENDINTERFACEENDLOOP
ENDMETHODENDMODULEENDONENDPROVIDEENDSELECT
ENDTRYENDWHILEENHANCEMENTENHANCEMENT-POINTENHANCEMENT-SECTION
ENHANCEMENTSENTRIESENTRYENVIRONMENTEQ
ERRORMESSAGEERRORSESCAPEESCAPINGEVENT
EVENTSEXCEPTIONEXCEPTION-TABLEEXCEPTIONSEXCLUDE
EXCLUDINGEXECEXECUTEEXISTSEXIT
EXIT-COMMANDEXPEXPANDEXPIRATIONEXPLICIT
EXPONENTEXPORTEXPORTINGEXTENDEDEXTENSION
EXTRACTFFETCHFIELDFIELD-GROUPS
FIELD-SYMBOLSFIELDSFILEFILTERFILTERS
FINALFINDFIRSTFIRST-LINEFIXED-POINT
FKEQFKGEFLOORFLUSHFONT
FORFORMFORMATFORWARDFOUND
FRACFRAMEFRAMESFREEFRIENDS
FROMFTOFUNCTIONFUNCTION-POOLGAPS
GEGENERATEGETGIVINGGKEQ
GKGEGLOBALGREENGROUPGROUPS
GTHANDLEHANDLERHASHEDHAVING
HEAD-LINESHEADERHEADERSHEADINGHELP-ID
HELP-REQUESTHIDEHIGHHINTHOLD
HOTSPOTIICONIDIDENTIFICATION
IDENTIFIERIDSIFIGNORINGIMMEDIATELY
IMPLEMENTATIONIMPLEMENTATIONSIMPORTIMPORTINGIN
INCLUDEINCLUDESINCLUDINGINCREMENTINDEX
INDEX-LINEINFOTYPESINHERITINGINITINITIAL
INITIALIZATIONINNERINOUTINPUTINSERT
INSTANCESINTENSIFIEDINTERFACEINTERFACE-POOLINTERFACES
INTERNALINTERVALSINTOINVERSEINVERTED-DATE
ISJOBJOINKEEPKEEPING
KERNELKEYKEYSKEYWORDSKIND
LANGUAGELASTLATELAYOUTLE
LEADINGLEAVELEFTLEFT-JUSTIFIEDLEGACY
LENGTHLEVELLEVELSLIKELINE
LINE-COUNTLINE-SELECTIONLINE-SIZELINEFEEDLINES
LISTLIST-PROCESSINGLISTBOXLITTLELOAD
LOAD-OF-PROGRAMLOCALLOCALELOGLOG-POINT
LOG10LOGFILELOOPLOWLOWER
LPILTMMAILMAIN
MAJOR-IDMARGINMARKMASKMATCH
MATCHCODEMAXMAXIMUMMEMORYMESSAGE
MESSAGE-IDMESSAGESMETHODMETHODSMIN
MINIMUMMINOR-IDMM/DD/YYMM/DD/YYYYMMDDYY
MODMODEMODIFMODIFIERMODIFY
MODULEMOVEMOVE-CORRESPONDINGMULTIPLYMULTIPLY-CORRESPONDING
NNANAMENAMETABNATIVE
NBNENESTINGNEWNEW-LINE
NEW-PAGENEW-SECTIONNEXTNONO-DISPLAY
NO-EXTENSIONNO-EXTENSIONSNO-GAPNO-GAPSNO-GROUPING
NO-HEADINGNO-SCROLLINGNO-SIGNNO-TITLENO-TOPOFPAGE
NO-ZERONODENODESNON-UNICODENON-UNIQUE
NOTNPNSNULLNUMBER
NUMERICNUMOFCHAROOBJECTOBJECTS
OBLIGATORYOCCURRENCEOCCURRENCESOCCURSOF
OFFOFFSETOLEONONLY
OPENOPTIONOPTIONALOPTIONSOR
ORDEROTHERSOUTOUTEROUTPUT
OUTPUT-LENGTHOVERFLOWOVERLAYPPACK
PACKAGEPADDINGPAGEPAGESPARAMETER
PARAMETER-TABLEPARAMETERSPARTPATTERNPERCENTAGE
PERFORMPERFORMINGPERSONPFPF-STATUS
PINKPLACESPOOLPOSITIONPRECOMPILED
PREFERREDPRESERVINGPRIMARYPRINTPRINT-CONTROL
PRIORITYPRIVATEPROCEDUREPROCESSPROGRAM
PROPERTYPROTECTEDPROVIDEPUBLICPUSHBUTTON
PUTQUEUE-ONLYQUICKINFORADIOBUTTONRAISE
RAISINGRANGERANGESREADREAD-ONLY
RECEIVERECEIVEDRECEIVERRECEIVINGRED
REDEFINITIONREFREFERENCEREFRESHREGEX
REJECTRENAMINGREPLACEREPLACEMENTREPLACING
REPORTREQUESTREQUESTEDRESERVERESET
RESOLUTIONRESPECTINGRESPONSIBLERESULTRESULTS
RETURNRETURNCODERETURNINGRFCRIGHT
RIGHT-JUSTIFIEDROLLBACKROUNDROWSRUN
SAPSAP-SPOOLSAVINGSCANSCREEN
SCROLLSCROLL-BOUNDARYSCROLLINGSEARCHSECONDS
SECTIONSELECTSELECT-OPTIONSSELECTIONSELECTION-SCREEN
SELECTION-SETSELECTION-SETSSELECTION-TABLESELECTIONSSEND
SEPARATESEPARATEDSETSHAREDSHIFT
SHORTDUMP-IDSIGNSIMPLESINSINGLE
SINHSIZESKIPSKIPPINGSMART
SOMESORTSORTABLESORTEDSOURCE
SPECIFIEDSPLITSPOOLSPOTSSQL
SQRTSTABLESTAMPSTANDARDSTART-OF-SELECTION
STARTINGSTATESTATEMENTSTATEMENTSSTATIC
STATICSSTATUSINFOSTEP-LOOPSTOPSTRING
STRLENSTRUCTURESTRUCTURESSUBKEYSUBMATCHES
SUBMITSUBROUTINESUBSCREENSUBSTRINGSUBTRACT
SUBTRACT-CORRESPONDINGSUFFIXSUMSUMMARYSUMMING
SUPPLIEDSUPPLYSUPPRESSSWITCHSWITCHSTATES
SYMBOLSYNCPOINTSSYNTAX-CHECKSYNTAX-TRACESYSTEM-CALL
SYSTEM-EXCEPTIONSSYSTEM-EXITTTABTABBED
TABLETABLESTABLEVIEWTABSTRIPTAN
TANHTASKTESTTESTINGTEXT
TEXTPOOLTHENTIMETIMESTITLE
TITLE-LINESTITLEBARTOTOKENIZATIONTOKENS
TOP-LINESTOP-OF-PAGETRACE-FILETRACE-TABLETRAILING
TRANSACTIONTRANSFERTRANSFORMATIONTRANSLATETRANSPORTING
TRMACTRUNCTRUNCATETRUNCATIONTRY
TYPETYPE-POOLTYPE-POOLSTYPESULINE
UNASSIGNUNDERUNICODEUNIQUEUNIT
UNIXUNPACKUNTILUPUPDATE
UPPERUSERUSER-COMMANDUSINGUTF-8
VALIDVALUEVALUE-REQUESTVALUESVARY
VARYINGVERIFICATION-MESSAGEVERSIONVIAVISIBLE
WAITWARNINGWHENWHENEVERWHERE
WHILEWIDTHWINDOWWINDOWSWITH
WITH-HEADINGWITH-TITLEWITHOUTWORDWORK
WRITEXXMLXSEQUENCEXSTRING
XSTRLENYELLOWYYMMDDZZONE

コメントは、ある記号から行末までをコメントとして扱う行コメントと、2つの記号で前後を括りその内部をコメントとして扱うブロックコメントに大別されることができます。 ABAP言語は、行コメントのみをサポートしております。行全体をコメントにする場合は、行の先頭にアスタリスク (*) を入れます。1 行の一部をコメントにする場合は、コメントの前に二重引用符 (“) を入れます。

  ************************************************
  *  REPORT DEMO_HELLO_WORLD                     *
  *  WRITTEN BY LI WENFENG, 02/18/2014           *
  *  LAST CHANGED BY LI WENFENG, 02/18/2014      *
  ************************************************
  REPORT DEMO_HELLO_WORLD.
  * Selection Screen
  PARAMETERS input(12) TYPE c DEFAULT 'Hello World!'.
  * Dynpro
  CALL SCREEN 100. 
  * List
  SKIP TO LINE 10.  " sets the line
  POSITION 40.      " sets the position 
  WRITE input.      " output<span style="background-color:rgb(255, 255, 255);white-space:normal;font-family:"Trebuchet MS", "Helvetica Neue", Helvetica, Tahoma, sans-serif;font-size:16px"></span><span style="background-color:rgb(255, 255, 255);white-space:normal;font-family:"Trebuchet MS", "Helvetica Neue", Helvetica, Tahoma, sans-serif;font-size:16px"></span>
ABAP開発に投稿されました 続きを読む

このトピックでは、ABAP開発のオブジェクト指向要素を取り上げて説明します。

 

プログラミングにおけるオブジェクト指向とは、いかのようなコンセプトでプログラムを構築する手法で。

  • プログラムをオブジェクトに分割して、オブジェクト間のコラボレーションによりアプリケーション機能を実現
  • オブジェクトはデータを内蔵しており、それをアクセスできる属性やメソッドをインタフェースとして外部に提供
  • オブジェクトは継承することにより、汎用化することができる

クラスとはデータとその操作手順であるメソッドをまとめたオブジェクトの雛型を定義したものです。 クラスはインスタンス化することができます。

インタフェースとは、クラスのアクセスインタフェースを明確に定義したものです。 インタフェースからインスタンスを作成することができません。

クラスは、ローカルクラスとグローバルクラスの2種類があります。

  • ローカルクラス
    ローカルクラスは、レポートプログラムやダイアログプログラムなど、個別プログラムの内部で実装されるクラスです。
    ローカルクラスは外部のプログラムに不可視です。
  • グローバルクラス
    グローバルクラスのソースコードはクラスビルダを使って記述し、システム全体のクラスライブラリに格納されます。
    グローバルクラスはどのプログラムからも使うことができます。

ローカルクラスとグローバルクラスはスコープが異なりますが、その以外の違いはとくにありません。

属性は、オブジェクトに関連付けられているデータに対するインタフェースです。 属性はクラスのインスタンスに作用するインスタンス属性と、クラスそのものに作用する静的属性があります。

メソッドは、クラスに関連付けられているサブルーチンです。大半のメソッドは、クラスのインスタンスに作用します。中には、クラスそのものに作用するメソッドもあります、これは静的メソッドと呼ばれます。

クラスをインスタンス化するには、CREATE OBJECT命令を使用します。

ABAP開発に投稿されました 続きを読む

このトピックでは、ABAP開発の構造化手法を取り上げて説明します。構造化手法はモジュール化とも呼ばれます。

 

ABAPプログラムの処理ロジックは処理ブロックで構成されます。

処理ブロックには、ABAP 実行システムによって外部プログラムから呼び出される処理ブロックと、ABAPプログラムの ABAP 命令による呼出が可能な処理ブロックの2種類があります。

ABAP命令による呼出が可能な処理ブロックは、プロシージャと呼ばれます。

カテゴリ処理ブロック呼出元ローカルデータ領域
画面制御ダイアログモジュールPBO、PAI
(個別画面)
イベントブロックPBO、PAI
(標準の選択、一覧画面)
プロシージャサブルーチン 
汎用モジュール 
メソッド 

処理ブロックは分離不可能な構文的モジュール化単位であり、他の処理ブロックを含むことはできません。

ダイアログモジュールは、画面の初期表示時やユーザがなんらかのアクションを起こした後に、ABAP実行環境(ダイアログプロセッサ) から、Dynno制御ロジックのPAI、PBOを通して、呼び出されます。

ダイアログモジュールは MODULE 命令によって導入され、ENDMODULE 命令によって終了します。

以下の図でダイアログモジュールの呼出イメージを示します。

ここのダイアログモジュールはcall dialogで呼ばれている「ダイアログモジュール」とは別物です。

call dialogで呼ばれている「ダイアログモジュール」はアプリケーションプログラムを通常の「Transaction」ではなく、呼出元のプログラムのSAP LUWの中に動く「dilalog」として呼び出すための名称というものです。

以下の図でダイアログモジュールの実装イメージを示します。

イベントブロックはTYPE 1(実行可能プログラム)の選択画面や一覧画面から呼び出される処理ブロックです。

サブルーチンは、主としてローカルなモジュール化で使用されます。一般に、サブルーチンは、そのサブルーチンが定義されているプログラムから呼び出されます。サブルーチンを使用して、プログラム内で繰り返し使用する機能を記述することができます。

サブルーチンは 全てのABAPプログラムで定義することができます。

汎用モジュールは、グローバルなモジュール化で使用され、常に別のログラムから呼び出されます。

汎用モジュールは汎用グループで定義する必要があり、任意のプログラムから呼び出すことができます。

汎用モジュールにより、データ交換の固定インタフェースが処理されます。たとえば、入力パラメータにデフォルトの値を割り当てることができます。また、このインタフェースでは例外処理もサポートしています。これによって、エラーを検出し、そのエラーを対処するため呼び出し元プログラムに返し、処理させることができます。

汎用モジュールは独自のメモリ領域を使用します。呼び出し元プログラムと汎用モジュールとが、共有メモリ領域を使ってデータ交換を行うことはできません。汎用モジュールインタフェースを使用しなければなりません。

ABAP開発に投稿されました 続きを読む

このトピックでは、ABAPプログラム実行時のメモリ構造を取り上げて説明します。 

サーバへログインすると、ユーザに1つの「ユーザセッション」が開かれます。 ユーザが同時に最大6つのウィンドウを開くとができます。これらのウィンドウはそれぞれ、アプリケーションサーバ上で共有メモリの専用領域を使用する「メインセッション」に対応しています。

メインセッションで起動した最初のアプリケーションプログラムによって、メインセッション内の内部セッションが開きます.

上記の図で示した通り、プリケーションプログラム(TYPE 1、TYPE M)が呼び出されるたびに、新しい内部セッションが作成されます。その他プログラムは新しい内部セッションを作成することがなく、必ず呼び出し元のアプリケーションプログラムの内部セッションで動作します。

ABAPプログラムの間にデータを共有できるメモリは、SAPメモリとABAPメモリの2種類がありまして、それぞれスコープが異なります。

  • SAPメモリ
    同じユーザセッション内にすべて可視です。別々のメインセッションで起動された各プログラムは同じSAPメモリを共有できます。
  • ABAPメモリ
    同じメインセッション内なら可視です。同じメインセッションで動作する各プログラムは同じABAPメモリを共有しています。

ABAP開発に投稿されました 続きを読む

このトピックでは、ABAPプログラムの構成を取り上げて説明します。


大きく分けるとABAPプログラムは、処理ロジックと各画面コンポーネントから構成されます。GUIをもっていないプログラムは、処理ロジックのみとなります。

SAPのドキュメントでは、処理ロジックのみをABAPプログラムと呼ぶことも多く見受けられます。

画面を持つABAPプログラムの構造を以下の図で示します。

以下の図ではABAPプログラムの処理ロジックの構造を示します。

  • プログラム導入部
    独立した ABAPプログラムは常に導入命令から始まります。導入命令はプログラムのタイプによって異なります。
  • グローバル宣言部
    すべての ABAP プログラムにおいて、プログラム導入部の後ろにグローバルデータ、クラス、および選択画面のための宣言部が続きますグローバルデータ、クラス、選択画面のための宣言部
  • 処理ブロック
    プログラムのソースコード内のグローバル宣言部の下には、任意の順序で ABAP プログラムの処理ブロックを列挙することができます.
    以下の下のタイプの処理ブロックが利用可能です。
    ●ダイアログモジュール (ローカルデータ領域なし)
    ●イベントブロック (ローカルデータ領域なし、2 つの例外あり)
    ●プロシージャ (メソッド、サブルーチン、汎用モジュール。独自のローカルデータ領域を使用)

画面を構成するコンポーネントはいかのようなものがあります。

  • Dynpro
  • GUIステータス
  • GUI表題
  • メッセージ
  • WebDynpro

それぞれ独立したオブジェクトとして存在します。

ABAP開発に投稿されました 続きを読む

SAPが標準で用意した各モジュールやアドオンとして開発された各アプリケーションは、すべてSAPのプログラムとして、アプリケーションサーバのワークプロセスに対して、 アプリケーションサーバ内で実行されます。

ABAPプログラムには以下のプログラムタイプがあります。

  • TYPE 1: 実行可能プログラム
  • TYPE M: モジュールプール
  • TYPE F: 汎用グループ
  • TYPE K: クラスプール
  • TYPE J: インタフェースプール
  • TYPE S: サブルーチンプール
  • TYPE T: タイププール
  • TYPE I: インクルードプログラム

WebDynproは、処理ロジックを記述するにクラスプールとインタフェースプールを利用してるため、 新たなプログラムタイプの追加はありません。

ABAPプログラムの概説は、以下のリンクからご参考くださ。

企業に投稿されました 続きを読む

企業とは、個人が営んでいる事業や集団で資金を募って形成された組織などの、経済的な活動をしている主体をさします。間違いやすいですが、法人だけではなく個人事業主も企業のうちに含まれます。

概説

日本企業の形態は、大きく分けて公企業私企業に分けることができますが、私企業については、さらに個人企業(個人事業主)共同企業に分けることができます。共同企業には、法人格を有する法人企業と法人格をもたない組合(匿名組合、民法上の組合)や権利能力のない社団などの非法人企業があります。

法人企業には、営利法人としての会社があり、公益法人としての社団法人財団法人、そして、両者の中間に位置付けられる中間法人として信用金庫等があります。

会社

会社とは、法人の中でも特に営利目的のものをさします。厳密には「会社法に基づいて設立された法人」と言った意味があります。

以下4種類の会社があります。

  1. 株式会社
    株主は、各自有する株式の引受価額を限度とする出資義務を負うだけで、会社債権者に対しては直接に責任を負わない(間接有限責任)会社
  2. 合名会社
    「直接無限責任」社員のみで構成される会社(社員全員が、会社債権者に対して、直接、連帯して無限責任を負う)
  3. 合資会社
    「直接無限責任」社員と「直接有限責任」社員からなる二元的組織の会社
  4. 合同会社
    「間接有限責任」社員のみで構成され、会社の内部関係においては民法上の組合と同様の規律が適用されている会社

ちなみに2006年(平成18年)に施行された新会社法に伴い廃止となり、現在は新たに設立することができなくなった有限会社も会社といった区分の1つになります。

個人事業主

個人事業主とは、法人を設立せず個人として事業を営むための開業届を出している人のことを指します。

個人事業主が特に大きくかかわってくるのが納税手続きで、法人の立場と個人事業主の立場とではとるべき手続きが全く異なってきます。

個人事業主と似た意味でつかわれる言葉で「自営業」や「フリーランス」という呼称も用いられることがありますが、個人事業主が法律に基づいた呼び名であることに対して、「自営業」と「フリーランス」は社会的な呼び名に過ぎません。

(自営業)

自営業とは、自分で事業を起こし、営業を行うことの総称を指します。 

自営業は、個人事業主のほかに、法人を設立しているオーナー社長も含められます。
法人の場合は、売上は法人の事業所得として申告し、個人事業主は個人の事業所得として申告するなど、税金の納め方が異なってきます。

(フリーランス)

フリーランスとは、企業には属さずに独立して仕事を請け負う人のことです。
フリーランスのうち、個人事業主もいれば、会社を作って法人化を取った人もいます。

要は、フリーランスは働き方を指す言葉であり、時間と場所を選ばずに仕事ができることや、1つの企業に属さず複数の企業などと取引があるという特徴があります。
そのため、個人事業主のうち、プログラムやカメラマンのようにフリーランスと呼べる人もいれば、個人商店を経営していてフリーランスと呼べない人もいます。

販売に投稿されました 続きを読む

業種や会社により、販売のやりかたは様々ですが、製造業、卸業、小売業に分けてそれぞれ説明します。

製造業

製造業の特徴は、単に部品を購入して販売するのではなく、購入した部品を工場で加工して販売する点にあります。部品などの購入は、会計上に仕入ではなく、生産に含まれることになります。システム化して、生産管理と販売管理を区別して説明する場合、製造業における販売管理の範囲は工場で生産された製品が倉庫に入庫してからの部分を対象とするのが一般的です。
製造業における販売の業務を図で表現すると、下記のようになります。
sd_kihon_0002.jpg

卸売業

卸売業はメーカーと小売店の橋渡し役で、伝統的な機能として、商品の集荷と分散機能、需給調整機能、流通コスト削減機能などがあります。つまり、商品の流通業務に特化することによって、製造業者が大量に生産した製品を、低コストで小口に分散する役割を果たしているのです。
卸売業における販売管理を図で表現すると、かきのようになります。これは最も典型的なパターンです。
sd_kihon_0003.jpg

小売業

小売業の特徴は、原則として販売先が消費者である点に集約されます。ですから、企業間取引で一般的になっている信用販売ではなく、現金決済やカード決済、割賦販売など安全確実に回収できる決済が必要になります。そのため、小売業の情報システムは、通常の販売管理システムの発注・仕入部分のみを活用し、販売部分にはそうした決済を迅速に処理できるPOSシステムを使って構築されるのが一般的です。
小売業における販売管理を図で表現すると、下記のようになります。

sd_kihon_0004.jpg

企業に投稿されました 続きを読む

業種

販売している商品やサービスの種類及び、メーカや卸売、小売など販売経路における位置により、企業や会社は、様々な業種に分類されます。
日本の産業全体の業種分けとしては、多くの場合、日本標準産業分類の大分類を基準(リファレンス)として、証券コード協議会における業種区分が用いられることが多い。下記の表はその業種一覧です。
sd_kihon_0001.jpg

業態

業態は、主に小売業や外食産業などの商業で使われます、業種と違い、販売形態(どのような売り方をするのか)により分類されます。
小売は、下記のように販売形態により業態分類できます。

■店舗販売
特定の場所に店舗を構え、商品を販売する形態です。下記のような分類があります

  • 百貨店(デパート)、
  • 量販店
  • コンビニエンスストア
  • スーパーマーケット
  • ディスカウントストア
  • 専門店
  • 個人商店

■無店舗販売

  • 訪問販売
    販売員が、家庭や職場を訪問して商品を販売する方法。
  • 移動販売
    団地や郊外の住宅密集地など、人の集まりやすい場所で、一時的に販売する方法。
  • 通信販売
    事業者がカタログ、新聞・雑誌広告、テレビ、インターネットなどの媒体を通じて商品広告を行い、顧客が、郵便、電話、ファックス、インターネットなどで注文する販売方法。
  • ネット販売(オンラインショッピングともいう)
    通信販売の一種で、インターネットを使った販売形態。
モデリング技法に投稿されました 続きを読む

用途

DFDとは、本来業務が持ってい る目的を達成するために要する 処理機能(大きな業務を構成す る要素業務に相当。)と情報の流 れを表すものです。

処理の手順ではなく、情報を注目対象としています。
DFDで表現する主な要素:

  • 「情報」がどこからきて
  •  どのような処理が行われ
  •  その結果がどこに渡されるのか
  •  あるいはどこに蓄積されるのか

構成要素

DFDは、「ファンクション(処理を行う機能)」、「ターミネータ(情報の発信元、受 信元)」、「情報の流れ」、「ファイル(情報の一時的な蓄積場所)」という4つの 記号により表現されます。

作成方法

DFDを作成する際の基本的なルール

  1. 全てのファンクションも、少なくとも1つ以上の「入力となる情報の流れ」と「出 力となる情報の流れ」を持つこと
  2. 情報の流れは少なくとも1つのファンクションに結合していること
  3. 全てのファンクションは、入力情報を新しい情報として出力すること
  4. 全てのターミネータは少なくとも1つの情報の流れと結合していること
  5. 全てのファイルは少なくとも1つの情報の流れと結合していること


作成事例

業務・システム最適化計画策定指針(ガイドライン)からの「人事給与業務でのD F D」 の作成事例

外部リンク

Pegaに投稿されました 続きを読む

このトピックでは、Pegaの用語集及びIT一般用語との対照を纏めてみました。不足や間違いなどのところについては、コメントでレスポンスください。

基本コンセプトを表現する用語

Pega用語意味Pega独自一般IT用語
Ruleアプリケーションを構成する各部品Component(部品)
Rule TypeRuleの「型」Component's Class
RuleSetRuleのコンテナ、バージョン管理機能を持つBundle(バンドル)
Classルールまたは他のオブジェクトの集まりをグループ化したもPackage(パッケージ)
Class Group異なるクラスのインスタンスを一つのテーブルに保存させるための機構該当なし

データを表現する用語

Pega用語意味Pega独自一般IT用語
Data Pageデータソースとの同期ロジック組込済みのデータキャッシュData Access Object (DAO)
Data Typeデータ型の定義とデータの保持Data Table(データテーブル)
Field Valueコード値」または、「区分値」該当なし
Page名前と値のペアを保持するデータ構造Data Object(データオブジェクト)
Page GroupPageの順序なしリスト 
Page ListPageの順序付きリストData List(データトリスト)
Property「属性」または、「データ項目」 同様
Property TypePropertyの「型」 同様
Value Group値(基本型のみ)の順序なしリスト該当なし
Value List値(基本型のみ)の順序付きリスト該当なし

業務プロセスを表現する用語

Pega用語意味Pega独自一般IT用語
Assignment人に割り当てられる作業Task(タスク)
Case「事案」、「案件」、、「業務」 同様(CMMN仕様)
Case typeCaseの「型」、ライフサイクルなどを定義 同様(CMMN仕様)
Correspondence「書面」(添付資料、通知メール等)同様(BMPN/CMMN仕様)
Flow処理フロー 同様(BMPN/CMMN仕様)
Flow actionタスクの完了を伴う「機能」同様(BMPN/CMMN仕様)
Local actionタスクの完了を伴わない「機能」同様(BMPN/CMMN仕様)
Routingルーティング、処理先を判定 同様
Service Level Agreementタスクの期限と期限が過ぎた時のアクションを定義該当なし
Stage工程 同様(CMMN仕様)
Work Group機能横断的なチーム、メンバー達は異なる組織に所属する場合があるTeam(チーム)
Work Party個人、組織、またはその他の関係者Actor(役割)
Work Basketワークバスケット、複数のオペレーターに未処理のAssignmentを割り当てるための機構Job Queue(ジョブキュー)
Urgency緊急度 同様(CMMN仕様)

ロジックを表現する用語

Pega用語意味Pega独自一般IT用語
Data Transformデータの転送及び形式の変換を行うプログラム部品該当なし
When「判定条件」Conditional formula(条件数式)
Decision Table「デシジョン・テーブル」、「判定表」、「決定表」 同様
Decision Tree「デシジョン・ツリー」、「条件分岐表」該当なし
Declare Expression実行条件がついている「計算式」該当なし
Validate入力チェック 同様

UIを表現する用語

Pega用語意味Pega独自一般IT用語
Control画面部品 同様、Widegetなどもよく使用される
Harness単一のHTMLページHTML Page
Navigation機能をナビゲーションするメニュー 同様、その他の類似用語:Menu(メニュー)
Paragraph文書 同様
Portalポータル、システムの入り口画面 同様
Section画面ブロックBlock(画面ブロック)
SkinUIの外観表示を変更できるもの 同様

関東地方に投稿されました 続きを読む

このトピックでは、東京都の各中華物産店を区別に纏めています。不足や変更があるところはコメントでご通知ください。


板橋区

(高島平)

  1. 新都アジア物産(SHIMTO)高島平店
    高島平2-28-1 TEL:03-6915-7166,営業時間:10時~20時

北区

(赤羽)

  1. 嘉華物産 
    赤羽1-22-7
  2. 魚豊(ウヨトヨ)
    赤羽1-23-6 TEL: 03-5249-5791

杉並区

(高円寺)

  1. 中国物産店 中華食材食品店
    高円寺北3丁目22-18 4F

豊島区

(池袋)

  1. 陽光城 池袋店
    西池袋1-25-2 TEL:03-5960-9188,営業時間:24時間営業
  2. 中国食品 友誼商店 
    西池袋1-28-6(大和産業ビル 4F)
  3. 日光池袋店 日連商事 
    西池袋 1-37-2(竜崎ビル)

葛飾区

  1. 雛華中華物産店
    堀切5丁目22−1

荒川区

(日暮里)

  1. 麒麟中国物産 日暮里店
    東日暮里5-52-6 (日経商事日暮里ビル 2F)

江東区

(南砂町)

  1. 中国物産美和 
    南砂2-3-1(南砂2丁目団地商店会) TEL:03-3615-0839, 営業時間:10時~21時

(辰巳)

  1. 吉祥商事
    辰巳1-9-49(都営辰巳一丁目アパート 9号棟 たつみ商店街 112)

(亀戸)

  1. 千葉商店
    亀戸5-9-5(コーポラスハマ)
  2. 新アジア物産
    亀戸5丁目21−16
  3. 友達物産
    亀戸2-43-5 徳永ビル1F  TEL:03-5609-6228
  4. 興安食品
    亀戸5丁目21-13-102

(大島/東大島/西大島)

  1. 中華物産店
    大島7丁目12

江戸川区

(新小岩/小岩)

  1. 陽光アジア物産 小岩店
    南小岩7-27-10 TEL:03-3673-4777,営業時間:10時~翌朝5時

(平井)

  1. 華夏中国物産 
    平井5-22-12
  2. 東昇中国物産
    平井2丁目25−14

(葛西/西葛西)

  1. 西葛西物産
    西葛西6-9-9(STビル 4F)
  2. 永盛MART
    西葛西5-10-14 TEL‎: ‎03-6808-9224,営業時間:10時~22時
  3. 泰和(タイワ)物産
    中葛西3-35-5 2階  営業時間:10時~22時

墨田区

(錦糸町/両国)

  1. アジアヤオショー
    錦糸1丁目4−11

台東区

(上野/御徒町)

  1. 京和(キョウワ)商店
    上野6-10−5 TEL:03-6240-1248
  2. 亜洲食品 アメ横店
    上野4-10-17
  3. 海羽(カイバ)
    上野4-7-8 TEL:03-5818-1868, 営業時間:10時~19時30分

新宿区

(大久保)

  1. 陽光城 アジア物産 大久保店 
    百人町1-17-10(STビル 1F) 
  2. 日光アジア物産
    大久保1-15-12(横田ビル 1F)
  3. 東京華僑服務社
    百人町2-11-2(神倉ビル B1F)

(新宿)

  1. 華榮 中国食品 中国書店
    歌舞伎町1-24-2(西武ビル3階),

中央区

(日本橋)

  1. 古樹軒
    日本橋箱崎町39-4

足立区

(竹の塚)

  1. 豊島物産店
    竹の塚5丁目7-1


BASISに投稿されました 続きを読む

1.Tr-cd:SICF

以下のICFサービスをそれぞれ有効化します。

WDA関連

  • /default_host/sap/bc/webdynpro
  • /default_host/sap/public/bc/ur
  • /default_host/sap/public/bc/icons
  • /default_host/sap/public/bc/icons_rtl
  • /default_host/sap/public/bc/webicons
  • /default_host/sap/public/bc/pictograms
  • /default_host/sap/public/bc/webdynpro/* 

SOAManager関連

  • /default_host/sap/bc/soap 
  • /default_host/sap/bc/srt
  • /default_host/sap/bc/srt/rfc/sap
  • /default_host/sap/bc/webdynpro/sap 
  • /default_host/sap/bc/webdynpro/sap/appl_soap_management

2.Tr-cd:SMICM

ICMのサービスが有効になってないといけない、デフォルトで有効になっているはずですが、念のため確認します。

3.Tr-cd:SRT_ADMIN

技術的セットアップ実行にチェックを入れて実行します。クライアント000とその他設定したいクライアントで実施が必須です)