Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
yureshino
Product and Topic Expert
Product and Topic Expert

This blog post is written in Japanese.

SAP Datasphere(旧 Data Warehouse Cloud)のテーブルを作成したときに、列名の技術名とビジネス名は同じものがデフォルトで入力されます。Datasphereの機能では一括でビジネス名を変更することはできず、手作業でビジネス名を変更していただく必要があります。

このブログではDatasphereのCSN/JSONファイルエクスポート/インポート機能を使って、Pythonでビジネス名を一括変更する方法をご紹介します。
※JSONを扱えるライブラリがあるJavascriptでも同様に行えるかと思います。

手順は3つです。

①CSN/JSON ファイルをエクスポート

②Pythonで書き換える

③Datasphereに書き換えたファイルをインポート

今回はCUSTOMERというテーブルのビジネス名を日本語にしたいと思います。


詳しい手順についてご紹介します。

①CSN/JSON ファイルをエクスポート

Datasphereから目的のテーブルをCSN/JSON ファイルとしてエクスポートします。


②Pythonで書き換える

Pythonで下記コードを実行します。

import json

# カラムの技術名とビジネス名のマッピング

table_mapping = {'CUSTOMER':'こきゃく'}

# カラムの技術名とビジネス名のマッピング(DB等から取得する必要があるのであればコードを取得するためのコードを記述する)

column_mapping = {'COUNTRY':'くに'

 , 'FULLNAME':'なまえ', 'TITLE':'たいとる'

 , 'COMPANY':'かいしゃ', 'ADDRESS1':'じゅうしょ1'

 , 'ADDRESS2':'じゅうしょ2', 'ADDRESS3':'じゅうしょ3'

 , 'CITY':'とし', 'STATE':'しゅう'

 , 'ZIPCODE':'〒', 'EMAIL':'めあど'

 , 'PHONE':'でんわ', 'DATE':'ひづけ'}

# 入力ファイル(引数等で指定すると汎用的)

input_file_path = 'CUSTOMER.json'

# JSONファイルをロード

with open(input_file_path) as file:

    data = json.loads(file.read())

# 確認

print (data)

# テーブル名を取得

table_name = list((data['definitions'].keys()))[0]

# テーブルのエンドユーザテキストをビジネス名に変更

data['definitions'][table_name]['@EndUserText.label'] = table_mapping.get(table_name, table_name)

# カラムのエンドユーザテキストをビジネス名に変更

for key in data['definitions'][table_name]['elements']:

    data['definitions'][table_name]['elements'][key]['@EndUserText.label'] = column_mapping.get(key, key)

# 出力ファイル(引数等で指定すると汎用的)

out_file_path = 'CUSTOMER_OUT.json'

# JSONファイルを出力

with open(out_file_path, mode='wt', encoding='utf-8') as file:

    json.dump(data, file, ensure_ascii=False, indent=2)

# 確認

print (data)


出来たデータを CUSTOMER_OUT.json としてローカルPCに保存します

③Datasphereに書き換えたファイルをインポート

先ほど作成した CUSTOMER_OUT.json をDWCにインポートします。

 

 


手順は以上です。

テーブルを開いてビジネス名が変更できているか確かめてみましょう。次のようになっていれば成功です。


最後まで読んでいただきありがとうございました!