Posts
2023-12-12
SAP SuccessFactors の OData API を使えるようにする(OAuth 2.0)
この記事は SAP Advent Calendar 2023 の 12 月 18 日分の記事として執筆しています。 はじめに SAP SuccessFactors(以下 SF と略します) は、単体でも優れた人材管理ソリューションだとは思いますが、せっかく OData API が提供されているので、工夫次第で例えば BTP に必要なデータを抽出し、他のシステムの情報と混ぜ合わせて新たな価値を見出す SAC などの BI ツールにデータを提供することで、別の視点からデータを分析する というようなことも出来るようになるでしょう。 そのための第一歩として、ローカル端末から SF の API を呼び出すところまでやってみます。 なお、この後実施する “SAML アサーションの生成” 方法は、非推奨となった /oauth/idp API を使わず、自身で生成する方法を取ります。 (当記事作成のモチベーションになった変更点です。ガッツリ使ってました) ちなみに、今後の作業内容はすべて Help Portal に掲載されています。 最新情報や、より詳細な情報が必要な場合、そちらをご確認ください。 環境 SAP SuccessFactors: b2311.20231204122616 デモ環境を使います(この SF 環境調達が 1 番ハードルが高いかも) Windows11: 23H2 Java: sapmachine-21.0.1 前提条件 SF の Manage OAuth2 Client Applications にアクセスできる権限を持っていること SAP Note 3031657 にアクセスできること。この Note に添付されているツールを途中で使用します。 作業全体のシーケンス図 sequenceDiagram autonumber ローカル端末 ->> ローカル端末: 証明書作成 ローカル端末 ->> +SF: OAuth2 クライアントアプリケーション登録 SF ->> -ローカル端末: API Key 出力 ローカル端末 ->> ローカル端末: SAML アサーション生成 ローカル端末 ->> +SF: アクセストークン リクエスト SF ->> -ローカル端末: アクセストークン 返却 ローカル端末 ->> +SF: API 実行 SF ->> -ローカル端末: API 実行結果返却 作業詳細 事前準備 - OpenSSL を使用した X.
2023-12-12
きっかけ これまでいくつかのサービス上で、ブログをちょっとだけ書いて、放置してしまってを繰り返してきましたが、ただただ気ままにメモをおける自分だけの場を用意してみるのもいいかと思ったのと、せっかく Obsidian でメモを書いているなら、書いたものがそのまま Upload されるような環境が構築できたら「書く」ことがちょっと楽になるんじゃないか、ということで構築してみました。 一度作ってしまえばそれまでではありますが、見直し用にメモしておきます。 記事公開までの流れ Obsidian + Obsidian Git + Hugo -> GitHub -> Cloudflare Pages 前提 以下がインストールまたはアカウント作成済みであること。 Obsidian Obsidian Git: Obsidian のプラグイン GitHub Hugo Cloudflare Pages Go 作業手順 Obsidian と GitHub 1. GitHub に Obsidian 用の Repository を作成する Repository 名はなんでも OK 2. Obsidian の Valut を 1. で作成した Repository に push git remote add origin https://github.com/xxx/xxxxx.git git push -u origin main 3. Obsidian Git の設定を入れる 設定は適当に。定期的に自動で commit & push されるようにするのが楽かと思います。
2022-12-12
SAP BTP 開発環境を Lima と WSL2 で作ってみる
この記事は SAP Advent Calendar 2022 の 12 月 14 日分の記事として執筆しています。 仕事用の Mac(M1) の他、普段使っている Windows11 それぞれの環境で 同じ BTP 開発体験を得たいなーと思ったため、Lima と WSL2 を使って環境を作ってみます。 なお、BTP 開発環境は btp-setup-automator を使用してラクします。 また、 Lima や WSL2 もほぼ初期設定のままで進めてみますので、細かな設定等を施したい場合は個々のより詳細な記事や公式資料をご確認ください。 Lima と WSL2 のセットアップ Lima 公式に従い、brew でインストールします。 brew install lima VM インスタンスの生成 Lima の VM インスタンスを作るにはいろいろな方法があるのですが、とりあえず動かすならテンプレートを使用するのが一番簡単です。 テンプレートの一覧 limactl start --list-templates 出力結果 almalinux-8 almalinux-9 … 中略 docker … 中略 ubuntu vmnet 今回は Docker を使いたいので、 docker テンプレート(中身は Ubuntu )を指定します。 limactl start --name=default template://docker また、 btp cli も cf cli も aarch64 には対応していないよう1なので、アーキテクチャを “x86_64” に指定します。 (arch: "x86_64" を yaml に事前設定、または構築時に “Open an editor to review or modify the current configuration” を選択して記載すれば良いです) なお、特にメモリサイズ等を指定しない場合のデフォルト定義は以下となるようです。
2022-03-03
CAP Java の API ドキュメントを OpenAPI(Swagger) で作成する
SAP CAP にて、CDS で API Endpoint を作成できるのは便利な一方、 CDS を書いていない方にとっては読みにくく、仕様として連携が難しい面があったため、 API ドキュメントを生成してみることにしました。 ※ 元記事は Zenn にありますが、こちらにも移しました。 公式ドキュメント https://cap.cloud.sap/docs/advanced/openapi 公式に記載されている通り、Node.js と違って Java の場合は CAP が良しなにやってくれるわけではないので、 自力で Spring Boot に統合してあげる必要があります。 幸い以下のサンプルコードも共有されているため、これを参考にしつつ、ドキュメントを生成してみます。 https://github.com/SAP-samples/cloud-cap-samples-java/commit/67f0ba618fc7da131d1a104f7a23e8b836e14d93 作業内容 1. srv/pom.xml に コンパイルコマンドを追加 公式サンプルの記述では以下のようになっています。 <command>compile srv/cat-service.cds -2 openapi --openapi:url /api/browse > ${project.basedir}/src/main/resources/swagger/openapi.json</command> しかしこの記述だと、特定の CDS( この例では cat-service.cds ) だけを対象としているため、 今回はすべてのドキュメントを出力するように変更します。 また、オプションによって図も出せるようなので、追加してみます。 <変更後> <command>compile srv --service all -o srv/src/main/resources/swagger --to openapi --openapi:diagram</command> 2. Swagger 向けの WebMvcConfigurer 実装クラスを作成する こちらは公式そのままで OK。 SwaggerResourceConfig.java 3. Swagger 向けの WebSecurityConfigurerAdapter 継承クラスを作成する こちらも公式そのままで。
2021-12-12
前回の記事 で、btp CLI のコマンドを確認しました。 その中にあった、accounts に関するコマンドを使用し、実際に SAP BTP を操作し、 Cloud Foundry 環境の構築まで実施してみたいと思います。 前提 BTP 環境(今回は Trial)を作成しておくこと。 btp CLI をインストール、ログインまで済ませていること 今回は US East(AWS) を使用します。 CLI で BTP を操作する 色々見てみる Global Account btp get accounts/global-account <結果> Showing details for global account 4xxxxxxxxxxxxxxxxxxx... global account id: 4xxxxxxxxxxxxxxxxxxx display name: xxxxxxxxxxxtrial description: subdomain: xxxxxxxxxxtrial-ga cost center: commercial model: Subscription license type: TRIAL geographical access: STANDARD crm tenant id: crm customer id: service id: use for: state: OK state message: Global account created.
2021-12-12
前回ログインまで進めた btp CLI ですが、これを使うと何ができるのかを今回は見ていきます。 ※ 元記事は Zenn にありますが、こちらにも移しました。 公式の記述 Account Administration Using the SAP BTP Command Line Interface (btp CLI) [Feature Set B]からの抜粋。 Use the SAP BTP command line interface (btp CLI) for all account administration tasks, such as creating or updating subaccounts, authorization management, and working with service brokers and platforms. The btp CLI is an alternative to the SAP BTP cockpit that lets you carry out all account administration tasks on global account, directory, and subaccount level via the command line.
2021-12-12
この記事は SAP Advent Calendar 2021 の 12/6 分の記事として執筆しています。 ※ 元記事は Zenn にありますが、こちらにも移しました。 btp CLI とは 文字通りですが、SAP BTP をコマンドラインで操作するためのツールです。 これを使うことで、以下の操作ができるそうです。 サブアカウントやディレクトリの作成 資格情報の管理 ユーザーの管理 など ちなみに、以前までは sapcp CLI として使われていたそうです。 私は sapcp CLI も知らなかったので、これまで SAP BTP を操作するとしたら画面からー、ユーザーを追加するのもポチポチするしかないー、と思ってましたが、 繰り返し行う操作はコマンドで実施したほうがラクしやすいので、ちょっとずつ btp CLI 、触っていきます。 ダウンロード、インストール 公式の方法 SAP development tools#Cloud から、ご利用の OS 用のファイルをダウンロード・インストールすれば完了です。 方法 公式記載の内容を転記しちゃいます。 Download the latest version of the client from the table below Extract the client executable from the tar.gz archive Linux: Use the terminal to extract the tar.