〜社労士業務を加速する〜SmartHR電子申請を自動化した話
ライター : 秦
2020年4月より社会保険・労働保険の一部の手続きについて電子申請が義務化された。電子申請は政府が運用する「e-Gov」より行うが、e-Govと連携したクラウドサービスが人気となっている。中でも、クラウド人事労務ソフトの「SmartHR」では、クラウド上で安全に人事情報を管理できる上に、申請から完了までWeb上で完結できるサービスとなっている。また、同様のソフトには「オフィスステーション」というクラウド人事労務ソフトも存在する。
今年、株式会社シクミヤでは、SmartHRおよびオフィスステーション+RPAを活用されている社労士事務所様(以下、クライアントAとする)の課題解決を行った。概略としては、e-Govから発行された各種手続きにおける公文書ファイルのダウンロード、解凍、PDF変換、アーカイブ、完了通知までをGoogle Apps Script(GAS)とPythonを用いて自動化するというものだ。
クライアントAでは、この作業に毎月多くの時間と負荷を要していたが、自動化することで対象業務の工数を大幅削減し、コストダウンすることに成功した。
あなたは以下のチェックリストに心当たりはないだろうか。
⬜︎ 公文書ファイルの処理を手作業で行っており時間を要している
⬜︎ 手作業での処理によって人為的ミスが発生している
⬜︎ 電子申請に対応したが効率が上がらない
⬜︎ 低コスト・簡易な仕組みで管理できる方法を探している
当該事象は他の社労士や経営管理コンサルタントにおいても共通の課題になっているため、本記事にて自動化を行った業務・背景・課題・解決策について紹介する。
※ 株式会社シクミヤでは、手作業による煩雑さやデータ管理の複雑さを解消すような業務コンサルティングを行っておりますので、お困りごとがあれば是非お気軽にご相談ください。
1. クライアントAが困っていた点と問題点
序文のクライアントAからの相談より、クライアントAが困っていた点は以下の内容であった。ソリューション提供側として認識した問題点を合わせて記載する。
困っていた点① - 公文書XMLファイルの閲覧性
クライアントAではMac端末を仕事で使っている。e-Govから発行される公文書はXMLファイルになっているが、それを整形して表示してくれるのはIEのみ、Mac端末での閲覧およびPDF化の方法が不明とのことだった。そのため、公文書ファイルの処理にはWindowsが必要なため端末を使い分けているが、Macに集約したいとのことだった。
【問題点】
・リテラシー、技術的なハードル(XMLファイルの処理)
・e-Govとその連携サービスも含めてMacに非対応
・公文書ファイル(.zip)の検索性が低い
・WindowsPC保有台数より同時に処理できる従業員数が限られている
困っていた点② - 手作業(人力)による単純作業
クライアントAでは電子申請の手続き処理において、SmartHRから公文書ファイルをダウンロードし、Googleドライブに公文書をアップロードして管理、さらに公文書ファイルのファイル名からは誰のものかわからないので、リネームしている。この作業を全て手作業で行っているが、毎月およそ30hほど要しており手続きが多い時期だとさらに多くの時間を要しているとのことだった。
・この作業に人手が割かれる(=コスト)
・単純作業ではあるが人為的ミスが発生する
・クライアント数が増加すれば更に時間がかかる
この点について、単純作業からの解放、人員を他作業へ充当、コスト削減と利益増大、クライアント拡大のための余裕、を切望されていた。
なお、クライアントAには元々GASで実装できる要員は存在したが、技術水準は高くないため簡易なものに限られていた。
【問題点】
・非効率な手作業(無駄なコスト、専門性提供機会の減損)
・単純作業ではあるが人為的ミスが発生する
・クライアントの拡大に比例して作業時間も増大する
・繁忙期にはこの作業に忙殺される
・技術的なハードル(スクレイピング、自動処理)
2. 自動化の全体像
今回の自動化におけるBefore-Afterの全体像を先に示しておく。
ポイント
・公文書のXMLファイルはIEブラウザで閲覧・手作業によるPDF変換が必要
→ IEを介さず自動でPDF変換
・公文書ファイルのダウンロードからリネーム、Driveへのアップロード、処理が完了した申請のアーカイブ、通知文面の作成を手作業で行っている
→ スクレイピングを活用して全て自動化
3. 自動化の背景と課題
まず、クライアントAの社労士業務においては以下のような環境および状況であった。
・SmartHRで各クライアントの人事労務の業務を行っている
・クライアントによってはオフィスステーションも利用している
・オフィスステーションの一部業務をRPAで自動化している
・事務所内での共通管理として電子申請の情報をGoogle Workspace上で管理している
・Mac端末を主に使用している
公文書とMacの相性が悪い
ひとつめの課題となっていたのがSmartHRで取り扱う公文書とMacの相性の問題であった。公文書ファイルはe-Govから発行されたzipファイルである。解凍するといくつかのファイルが格納されており、中には社会保険・雇用保険の文書としてXML形式のファイルが格納されている。
ところが、このXML形式のファイルが難ありで、WindowsではIEを使えばブラウザ内に文書が表示されて容易に閲覧することができる形式である、しかし、このXML形式のファイルをMacでは容易に閲覧する方法がない。文書を確認するのにWindows端末を併用するなど、煩雑な作業になっていた。
Firefoxブラウザを対象にはしているがMacへの対応状況については、SmartHRからも以下のように公表されている。
技術的には、XMLファイルとXSLファイルを合成してHTMLへと変換する「XSLT変換」という処理を行う必要があり、これがIEでは標準実装されているため、IEでのみ閲覧することができているというわけである。
公文書に係る単純作業の煩雑さ
この課題が自動化の大きなポイントであったが、クライアントAでは以下のフローで、手作業および一部RPAとGASを併用した自動化した運用を行っていた。
Beforeの現状分析:業務フロー図
・クライアント毎のSmartHR専用URLからログイン
・申請の一覧から対象者の申請を検索し、詳細ページを開く
・公文書ファイル(.zip)をローカルPCにダウンロード
・ローカルPC上でZIP解凍
・XML形式のファイルをPDFファイルに変換
・Google Drive上にアップロード
・PDFファイルをリネームしてフォルダに格納
・申請情報をSmartHR上でアーカイブ
・スプレッドシートのステータス変更とDriveのリンクを記入
・ローカルPCから公文書ファイルを削除
・各クライアントへ処理内容やエラー内容を通知
申請が多い時期になると膨大な数の申請を処理しなければならず、これらの煩雑な単純作業からの解放が切望されていた。
通知対象の抽出と通知文書作成の手間
申請の処理状況をクライアントに通知しているが、クライアント毎→手続き毎→対象者とグルーピングして通知文書を作成している。これも多数の手続きの中からひとつひとつを仕分けるのが手間であった。
既に雇用保険についてはGASで自動化が行われていたが、社会保険については自動化が行われていなかった。
4. 自動化の設計と実装
処理フロー設計
実装に入る前に、クライアントへヒアリングを行い、処理フロー図を作成した。申請の一覧はスプレッドシート上に「申請管理シート」として管理しており、通知対象の一覧を「SmartHRダウンロードリスト」としてシートを新規に作成し蓄積・管理することとした。
例)手続終了ステータスの処理フロー図
実装設計 - 技術要素
この課題解決に当たって使用した技術要素は以下の通りである。
Google Workspace (スプレッドシート、ドライブ)
Googleのクラウドグループウェアソフト。旧GSuite。スプレッドシートによる電子申請の一覧管理、公文書ファイルのストレージ管理などを行っている。
Google Apps Script
Google Workspaceの統合、自動化、拡張のためのローコードプラットフォーム。JavaScriptベースのプログラミング言語。SmartHRページのスクレイピングやスプレッドシートの操作、ドライブの操作などを行っている。
Python、Flask
Pythonはプログラミング言語。FlaskはPythonのフレームワーク。ZIPファイルの解凍処理、XMLファイルのXSLT変換処理などを行っている。
Heroku
アプリケーションの開発から実行、運用までをクラウド上で管理できるクラウドプラットフォーム。PythonをWebアプリとして公開するためのサーバー環境として使用している。
4-1. GASによるSmartHRのスクレイピング
SmartHRの電子申請データを検索し、申請情報および公文書ファイルを取得するためにGASでスクレイピングを実装した。また、クライアント毎にログインURLが異なるため、管理用のスプレッドシートを作成し、一覧のシートを日時で作成、URLと処理状況(完了、エラー)を記載している。
スクレイピングで行っている処理
・ログイン認証
・電子申請一覧ページの表示
・対象ステータスの申請情報を検索
・申請情報を取得
・公文書ファイルのダウンロード
・申請のアーカイブ
4-2. 公文書ファイルの解凍・PDF変換・リネーム
SmartHRからダウンロードした公文書ファイル(.zip)の解凍、XSLT処理、PDF変換、PDFファイルのリネームをGASとPythonを併用して実装した。
これらの処理についてはSmartHRだけでなく、オフィスステーションで扱う公文書ファイルも同様であるため、RPAで自動ダウンロードし、ドライブ上にアップロードしたファイルに対しても同じ処理を行っている。
GASで行っている処理
・公文書ファイル(.zip)をPythonに送信
・解凍したファイルの中身を受信
・XSLT変換の対象ファイル(XML/XSL)をPythonに送信
・XSLT変換されたファイルを受信し、PDF変換
・ドライブにアップロード
・PDFファイルのリネーム
Python on Herokuで行っている処理
・ZIPファイルの解凍
・XSLT変換
実装における補足1 - ZIP解凍処理
GASにもUtilities.unzip()というAPIが用意されているが、公文書ファイルのファイル名にはCP932という文字コードが使われている。CP932は「Microsoft コードページ932」の略であり、つまり主にWindows端末で取り扱っている文字コードである。このCP932を含んだ文字列がファイル名に使用されているファイルがZIP圧縮されている場合、Utilities.unzip()では以下のエラーが発生する。そのため、Python側にZIP解凍処理を委譲することとした。
Exception: Utilities オブジェクトでの unzip メソッドまたはプロパティの取得中に予期しないエラーが発生しました。
実装における補足2 - Pythonモジュール
Python処理のうち、ZIPファイルの解凍にはzipfileモジュールを、XSLT変換にはlxmlモジュールを使用している。
なお、Pythonのソースコードは以下の記事にて公開している。
4-3. メール通知
公文書処理した手続きについて、クライアント・手続き名・対象者名をリストアップした内容でメール通知をGASで実装した。
4-4. 実装後の全体像
最終的に、以下のような全体像となった。
まとめ
・SmartHRの電子申請に係る作業を自動化した
・低コストな仕組みによって課題解決を行った
本記事の仕組みは汎用的に使いまわせるものとなっています。少しの工夫で単純作業から解放され、ミスや漏れも減り、さらにローカルPC上に保管することがなくなったことで情報漏洩リスクの低減にも繋がっています。
SmartHRで電子申請の手続き処理している方や、同様の課題に悩まされている方は、ぜひ株式会社シクミヤにご相談ください。
弊社は業務効率化・自動化など、仕組みで解決するお手伝いをさせていただいております。お仕事のご依頼はコチラ↓までお願いいたします。
note: Visionary Base編集部
Twitter: @visionary_base