ABAP New open SQL

気まぐれですが、現在お仕事で使っているABAPについて、メモを残していこうと思います。
基本コンセプトとして、「モダンなソース」を書くように心がけようと思っています。

ABAPのバージョンも7.4になったし、
SAP提唱の「Code to Data」「Code Pushdown」(つまり、Databaaeに負荷をかける)を意識します。

私が使っている「ちょっとSQLを試し書きして動かす」ツールを紹介します。
※SAP HANA環境だと、HDB StudioのSQL Consoleが使えるから助かるんだけれど、
→TRCD:DB01っていうのがありますね。
  あれ入れるほどでもないし、Non HANA環境だと使えないし、権限設定とかいろいろ...

少しプログラムを改変しました。(20171018)
少しプログラムを改変しました。(20170926)
少しプログラムを改変しました。(20181022)
少しプログラムを改変しました。(20200908)

*&---------------------------------------------------------------------*
*& Report Y_SQL_CONSOLE
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT Y_SQL_CONSOLE.

*-----------------------------------------------------------------------
* GLOBAL VARIABLE
*-----------------------------------------------------------------------
DATA GDF_SUBRC TYPE SY-SUBRC.

*-----------------------------------------------------------------------
* CONDITION VIEW
*-----------------------------------------------------------------------
DATA GDF_CHAR1 TYPE CHAR10.
TYPES GTR_CHAR1 LIKE RANGE OF GDF_CHAR1.
SELECT-OPTIONS S_CHAR1 FOR GDF_CHAR1.

DATA GDF_CHAR2 TYPE CHAR10.
TYPES GTR_CHAR2 LIKE RANGE OF GDF_CHAR2.
SELECT-OPTIONS S_CHAR2 FOR GDF_CHAR2.

DATA GDF_NUMC1 TYPE NUMC08.
TYPES GTR_NUMC1 LIKE RANGE OF GDF_NUMC1.
SELECT-OPTIONS S_NUMC1 FOR GDF_NUMC1.

DATA GDF_NUMC2 TYPE NUMC08.
TYPES GTR_NUMC2 LIKE RANGE OF GDF_NUMC2.
SELECT-OPTIONS S_NUMC2 FOR GDF_NUMC2.

DATA GDF_DATS1 TYPE DATS.
TYPES GTR_DATS1 LIKE RANGE OF GDF_DATS1.
SELECT-OPTIONS S_DATS1 FOR GDF_DATS1.

DATA GDF_DATS2 TYPE DATS.
TYPES GTR_DATS2 LIKE RANGE OF GDF_DATS2.
SELECT-OPTIONS S_DATS2 FOR GDF_DATS2.

DATA GDF_TIMS1 TYPE TIMS.
TYPES GTR_TIMS1 LIKE RANGE OF GDF_TIMS1.
SELECT-OPTIONS S_TIMS1 FOR GDF_TIMS1.

DATA GDF_TIMS2 TYPE TIMS.
TYPES GTR_TIMS2 LIKE RANGE OF GDF_TIMS2.
SELECT-OPTIONS S_TIMS2 FOR GDF_TIMS2.

*-----------------------------------------------------------------------
* START-OF-SELECTION
*-----------------------------------------------------------------------
START-OF-SELECTION.
  PERFORM START_OF_SELECTION
    USING
      S_CHAR1[]
      S_CHAR2[]
      S_NUMC1[]
      S_NUMC2[]
      S_DATS1[]
      S_DATS2[]
      S_TIMS1[]
      S_TIMS2[]
    CHANGING
      GDF_SUBRC.

*-----------------------------------------------------------------------
* SUBROUTINE
*-----------------------------------------------------------------------
FORM START_OF_SELECTION
    USING
      PIR_CHAR1 TYPE GTR_CHAR1
      PIR_CHAR2 TYPE GTR_CHAR2
      PIR_NUMC1 TYPE GTR_NUMC1
      PIR_NUMC2 TYPE GTR_NUMC2
      PIR_DATS1 TYPE GTR_DATS1
      PIR_DATS2 TYPE GTR_DATS2
      PIR_TIMS1 TYPE GTR_TIMS1
      PIR_TIMS2 TYPE GTR_TIMS2
    CHANGING
      POF_SUBRC TYPE SY-SUBRC.
*-----------------------------------------------------------------------
* Please write the SQL statement here ☆
* Set the internal table to be stored to LDT_DATA ☆
* Inline definition of LDT_DATA is fun ☆
  SELECT
    FROM T001
    FIELDS *
    INTO TABLE @DATA(LDT_DATA).
*-----------------------------------------------------------------------
  TRY.
      CL_SALV_TABLE=>FACTORY(
        IMPORTING
          R_SALV_TABLE = DATA(LDO_ALV)
        CHANGING
          T_TABLE  = LDT_DATA ).
    CATCH CX_SALV_MSG INTO DATA(LDX_SALV_MSG).
      POF_SUBRC = 8.
      RETURN.
  ENDTRY.
  LDO_ALV->GET_FUNCTIONS( )->SET_ALL( ).
  LDO_ALV->GET_COLUMNS( )->SET_OPTIMIZE( ).
  LDO_ALV->GET_SELECTIONS( )->SET_SELECTION_MODE( EXPORTING VALUE = IF_SALV_C_SELECTION_MODE=>CELL ).
  LDO_ALV->DISPLAY( ).

  POF_SUBRC = 0.
ENDFORM.

おまけ
息苦しいほどタイトな演奏です。

Brian Culbertson- Back in the Day & So Good

検索キーワード
ABAP
ABAP 7.4
ABAP 7.40
ABAP 7.5
ABAP 7.50
SQL
Open SQL
New Open SQL
SAP HANA
Code to Data
Code Pushdown

以上

Windows10無償アップグレード期間終了後

日付が変わったので昨日(2017/2/26)
Windows8.1Pro→Windows10Proの無償アップグレードに成功しました。

手順
Windows8.1Proプレインストール環境にて
A:オンラインアップグレードにてWindows10Proインストール
B:インストール後ライセンス認証済みを確認
C:Windows10ProインストールUSBメモリにてクリーンインストール
  →SSD内データをパーティションごとすべて削除後クリーンインストール
D:インストール後ライセンス認証済みを確認

少し古いウルトラブックWithタッチパネルにインストールしたところ
デバイスドライバは全てWindows10標準に付いてきました。
パフォーマンスは悪くないしOS再構築は楽だし
もくろみ通りでした☆

NEXUS 7 LTE 2013 文鎮化の原因

NEXUS 7 2013がAndroid 6.xにアップデートして
再起動のループに悩まされている記事が散見しています。
そして私も再起動の無限ループに陥りました。
 
イロイロ検証したところ原因が特定できたのでここに書きます。
ちなみに、5回文鎮化しました。(汗)
 
端的に、
設定→アプリ→Googleアプリを無効にした状態で
シャットダウンすると
次回起動時から無限ループに陥ります。
 
無限ループ状態からの復帰は
システムリカバリ以外方法は無いようです。
 
NEXUS 7
無限ループ
文鎮化
Andriod 6

Apple Magic MouseをWindowsで使う

Apple Magic MouseWindowsで使う」
このネタを調べたのですがいろいろ情報が交錯しているようで
現時点の正しい情報を書きます。(試しました)
 
・誤りの情報
  ・AppleWirelessMouse.exeまたはAppleWirelessMouse64.exeを
    http://www.4shared.com/からダウンロードする必要はないです。
  ・Bluetooth 更新プログラム 1.0 for Windowsは現在ダウンロード出来ない。
 
・手順
  ・「Boot Camp サポートソフトウェア」の最新版を以下よりダウンロード
     https://support.apple.com/ja_JP/downloads
    「製品別」をクリックして検索キーワードを「bootcamp」にすると簡単に出てきます。
  ・ダウンロードしたファイルの中に
    「AppleWirelessMouse.exeまたはAppleWirelessMouse64.exe」が入っています。
  ・上記ファイルを使ってドライバインストールします。
     Windows10 64bitでMagic Mouseの「ホイール??」も動作しました。  

おまけ
日本国内ではほとんど知られていませんが私は好きです。

apple magic mouse windows10

ExcelのStyleを削除する

ExcelのStyleを削除する」
ネタは沢山ページがあると思いますが
どうせならば一味違うものをということで作ってみました。
 
下ごしらえ。
 以下コードをメモ帳に張り付けて保存する。
 出来上がったテキストファイルの拡張子をtxt→vbsに変更する。
 
使い方。
 Styleを削除したいExcelファイルをドラッグ&ドロップする。
 複数ファイルをまとめてドラッグ&ドロップしてもOK!
 
注意点。
 まともにエラーハンドリングしていないので
 気を付けて使ってください。(笑)
 垂れ流しコードです。構造化は気が向いたらします。
 
使ったよ♪っている奇特な人がいたらコメントくれると嬉しいかな〜◎
 
よろ〜☆
 

'-----------------------------------------------------------------------
Option Explicit
On Error Resume Next

Dim Args, Arg
Set Args = WScript.Arguments

Dim ExcelApp, ExcelBook
Set ExcelApp = CreateObject("Excel.Application")

Dim Builtins, Builtin
Builtins = Array( _
    "20% - アクセント 1", "20% - アクセント 2", "20% - アクセント 3", _
    "20% - アクセント 4", "20% - アクセント 5", "20% - アクセント 6", _
    "40% - アクセント 1", "40% - アクセント 2", "40% - アクセント 3", _
    "40% - アクセント 4", "40% - アクセント 5", "40% - アクセント 6", _
    "60% - アクセント 1", "60% - アクセント 2", "60% - アクセント 3", _
    "60% - アクセント 4", "60% - アクセント 5", "60% - アクセント 6", _
    "アクセント 1", "アクセント 2", "アクセント 3", _
    "アクセント 4", "アクセント 5", "アクセント 6", _
    "タイトル", "チェック セル", "どちらでもない", _
    "Percent", "メモ", "リンク セル", "悪い", "計算", "警告文", _
    "Comma [0]", "Comma", "見出し 1", "見出し 2", "見出し 3", "見出し 4", _
    "集計", "出力", "説明文", "Currency [0]", "Currency", "入力", "Normal", "良い")

Dim Style
Dim IsBuiltin
For Each Arg In Args
    MsgBox Arg
    Set ExcelBook = ExcelApp.Workbooks.Open(Arg)
    For Each Style In ExcelBook.Styles
        IsBuiltin = False
        For Each Builtin In Builtins
            If Builtin = Style.Name Then
                IsBuiltin = True
                Exit For
            End If
        Next
        If IsBuiltin = False Then
            Style.Delete
        End If
    Next
    ExcelBook.Close
Next
MsgBox "処理終了"
'-----------------------------------------------------------------------

excel style 削除

dyson DC16 motorhead リニューアルする(前編)

多分5年以上前に購入しました〜◎

dyson DC16 motorhead
http://kakaku.com/item/21301010708/

dysonのコードレスモデル初代ということで〜
相変わらず白い粉も取れるし気持ちよく使っているのですが〜
2世代目以降のDC30/31/34/35/45の特に〜
ロングパイプが気になりつつ年月が経過しました〜○

先日...Amazonを何気なく巡回していると〜
こんなものを見つけました〜◎

並行輸入品】Dyson(ダイソン) DC35 ロングパイプ
http://www.amazon.co.jp/o/asin/B007UMKASI

当たり前なのですが〜2世代目以降しかポン付けは出来ないんですよ〜△
しかしながら〜Dyson Extension hoseとなると〜
対応機種にDC16も含まれるんです◎
http://www.amazon.co.jp/o/asin/B009NP3QRC

そんなわけで〜Dyson(ダイソン) DC35 ロングパイプは〜
少なくともパイプ径や結合の仕組みは同一なのではとの結論に達し〜
注文してみました〜◎

...

ん〜予測はしていましたが〜ポン付けは出来ませんでした〜△
しかしながら〜motorhead用電源供給コネクタが干渉して使えないだけなので〜
DC16 motorhead本体のmotorhead用電源供給コネクタカバーを〜
止めているヘキサネジを外せば〜
DC35 ロングパイプ側は加工なしで接続できました〜◎
当然ですが〜DC16 motorheadに付属するmotorheadは使えません△
コンビネーションツールや隙間ノズルは普通に使えます◎
DC16(motorhead無しだったらポン付け可能と思います)

あとは〜バッテリーのへたりを何とかしたいなぁ〜○