<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>スタッフブログ</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/" />
    <link rel="self" type="application/atom+xml" href="https://www.flexsche.com/blog/atom.xml" />
    <id>tag:www.flexsche.com,2018-11-26:/blog/1</id>
    <updated>2026-03-24T08:44:13Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 7.0.1</generator>

<entry>
    <title>3泊4日沖縄の旅</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2026/03/content-5.html" />
    <id>tag:www.flexsche.com,2026:/blog//1.124</id>

    <published>2026-03-24T08:45:00Z</published>
    <updated>2026-03-24T08:44:13Z</updated>

    <summary>開発担当のオグリです。 2026年3月6日(金)から3月9日(月)まで、3泊4日...</summary>
    <author>
        <name>オグリ</name>
        
    </author>
    
        <category term="社内の様子" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p>開発担当のオグリです。</p>
<p>2026年3月6日(金)から3月9日(月)まで、3泊4日で社員旅行に行ってきました。</p>
<p>今回の行き先は沖縄です。</p>
<p>フレクシェの社員旅行は、その年のプロジェクトメンバーが中心となってプランを考え、社内で投票を行い、行き先を決めています。<br />今回はCHOとふじさきが名乗りを上げてくれて、沖縄旅行に決定しました。</p>
<p>今回も家族帯同で参加したメンバーが多く、大人も子どもも一緒に楽しめる、にぎやかな旅行になりました。</p>
<p>初日は羽田空港を出発して那覇空港へ。</p>
<p>到着後は瀬良垣のホテルへ向かい、各自チェックインです。</p>
<p><img alt="20260308_101045.jpg" src="https://www.flexsche.com/blog/uploads/20260308_101045.jpg" width="391" height="292" class="mt-image-none" /></p>
<p><img alt="20260306_182017.jpg" src="https://www.flexsche.com/blog/assets_c/2026/03/91f1ba1b1e6f7c0ac611396904c30ef782e24ab8-thumb-4000x3000-1628.jpg" width="390" height="311" class="mt-image-none" /></p>
<p><img alt="Image (11).jpg" src="https://www.flexsche.com/blog/uploads/9f7a62e13956683d89c1d68287d640c80e8196c9.jpg" width="390" height="294" class="mt-image-none" /></p>
<p>部屋に入ってまず目に入る海の景色に、一気に沖縄気分が高まりました。</p>
<p>空と海の色、風のやわらかさ、東京とはまったく違う空気に「沖縄に来たな」と実感します。</p>
<p>チェックインのあとには、ホテルと夕日を背景にみんなで集合写真も撮影しました。</p>
<p>旅の始まりらしい高揚感のある一枚で、「これから4日間が始まる」という実感がいっそう強まりました。</p>
<p></p>
<p><img alt="Image (4).jpg" src="https://www.flexsche.com/blog/uploads/968367b297f1b935916ddb1f0ddc2c4095d89708.jpg" width="390" height="292" class="mt-image-none" /></p>
<p></p>
<p>その後は、みんなで焼肉へ。</p>
<p>沖縄での最初の夜から楽しい時間を過ごすことができました。</p>
<p></p>
<p><img alt="DSC_8325.JPG" src="https://www.flexsche.com/blog/assets_c/2026/03/DSC_8325-thumb-6016x4016-1633.jpg" width="390" height="261" class="mt-image-none" /></p>
<p><img alt="Image.jpg" src="https://www.flexsche.com/blog/uploads/11f5ee7e3a31a17ec29219b3f49195523716c6d0.jpg" width="390" height="293" class="mt-image-none" /></p>
<p>2日目、3日目は終日自由行動です。</p>
<p>3日目の夕方までには那覇市内のホテルへ移動します。</p>
<p></p>
<p>みんながそれぞれ自分たちのペースで沖縄を満喫しました。</p>
<p></p>
<p><img alt="Image (10).jpg" src="https://www.flexsche.com/blog/uploads/45e0ca161cd000c49413b86219a66371aa42fabc.jpg" width="390" height="292" class="mt-image-none" /></p>
<p><img alt="Image (7).jpg" src="https://www.flexsche.com/blog/uploads/377ff019dc11bcfdbe6235ca9c8417225f5f73aa.jpg" width="390" height="293" class="mt-image-none" /></p>
<p><img alt="IMG_2042.jpeg" src="https://www.flexsche.com/blog/uploads/IMG_2042.jpeg" width="391" height="220" class="mt-image-none" /></p>
<p><img alt="shared image (15).jpg" src="https://www.flexsche.com/blog/uploads/9f5929a2ef2a07d0d7cd795763324c815f01c6fb.jpg" width="389" height="519" class="mt-image-none" /></p>
<p><img alt="Image (10).jpg" src="https://www.flexsche.com/blog/uploads/fb48ee70bc7009c160d59fe779a9880f9ec1e2e1.jpg" width="389" height="292" class="mt-image-none" /></p>
<p><img alt="DSC_8808.JPG" src="https://www.flexsche.com/blog/uploads/9464ef723ffba53ecefdf3d6dd50cbc2103c953c.JPG" width="391" height="261" class="mt-image-none" /></p>
<p><img alt="Image (1).jpg" src="https://www.flexsche.com/blog/uploads/a2c1d9b0d5d1563ed4de08c0d5d67380b169be97.jpg" width="389" height="292" class="mt-image-none" /></p>
<p><img alt="Image.jpg" src="https://www.flexsche.com/blog/uploads/87a9c0a1fe0f2b51b1b669232e7d446adfbf0aca.jpg" width="391" height="293" class="mt-image-none" /></p>
<p><img alt="Image (2).jpg" src="https://www.flexsche.com/blog/uploads/2e5122e8439c5542a31238075accf73f35768df1.jpg" width="391" height="293" class="mt-image-none" /></p>
<p><img alt="IMG_4467.jpg" src="https://www.flexsche.com/blog/uploads/IMG_4467.jpg" width="391" height="294" class="mt-image-none" /></p>
<p><img alt="IMG_4426.jpg" src="https://www.flexsche.com/blog/uploads/IMG_4426.jpg" width="390" height="293" class="mt-image-none" /></p>
<p>観光をしっかり楽しむ組もあれば、ホテルでリゾート気分を満喫する組もあり、過ごし方は本当にさまざまでした。</p>
<p>それでも後で話を聞くと、それぞれに「沖縄らしい時間」をちゃんと持っていて、自由行動の日ならではの楽しさがあったように思います。</p>
<p>海を眺めながらのんびりしたと思えば、少し街の雰囲気も楽しめるので、同じ沖縄でもまた違った表情を感じられます。</p>
<p>最終日は那覇市内のホテルをチェックアウトし、那覇空港から羽田空港へ戻りました。</p>
<p>あっという間の4日間でしたが、しっかりリフレッシュできました。</p>
<p>お客様や関係者の皆さまには、期間中ご不便をおかけしたこともあったかと存じます。ご理解、ご協力をいただきありがとうございました。</p>
<p>この旅行でしっかり充電した分、これからまたよりよい製品とサービスをお届けできるよう、社員一同取り組んでまいります。</p>]]>
        
    </content>
</entry>

<entry>
    <title>Optimizer勉強会を開催しました！</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2026/02/optimizer.html" />
    <id>tag:www.flexsche.com,2026:/blog//1.120</id>

    <published>2026-02-24T00:15:00Z</published>
    <updated>2026-02-24T00:16:03Z</updated>

    <summary>巷で注目されている「最適化」。生産スケジューリングの分野においても、いまホットな...</summary>
    <author>
        <name>永根</name>
        
    </author>
    
        <category term="社外イベント" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p data-start="120" data-end="247">巷で注目されている「最適化」。<br data-start="412" data-end="415" />生産スケジューリングの分野においても、いまホットな話題です。</p>
<p data-start="249" data-end="322">もし細かいルールを積み重ねなくても、最適な計画を自動で出せるとしたらどうでしょうか。<br />生産スケジューリングの考え方もこれまでとは少し違ってくるかもしれません。</p>
<p data-start="249" data-end="322">実はFLEXSCHEにもそんな最適化のためのツールがあります。<br data-start="265" data-end="268" />それがFLEXSCHE Optimizer。皆さん使ったことはありますか？</p>
<h2>Optimizer勉強会</h2>
<p data-start="356" data-end="367">こんにちは、永根です。</p>
<p data-start="369" data-end="518">2026年1月30日、弊社オフィスにて「FLEXSCHE Optimizerの入門・応用勉強会」を開催しました。<br data-start="410" data-end="413" />本勉強会では、まずOptimizerの基本的な挙動や設定といった入門的な内容を取り上げ、その後実プロジェクトへの適用のコツなど応用的な内容をご紹介しました。参加者の皆さまには<span>サンプルプロジェクトを用いて</span><span>実際に手元で操作を行いながら学習を進めていただきました。</span></p>
<p data-start="369" data-end="518" style="text-align: center;"><img alt="optStudyPicture1.jpg" src="https://www.flexsche.com/blog/uploads/optStudyPicture1.jpg" width="286" height="215" class="mt-image-none" /> <img alt="optStudyPicture2.jpg" src="https://www.flexsche.com/blog/uploads/optStudyPicture2.jpg" width="286" height="215" class="mt-image-none" /></p>
<p data-start="369" data-end="518"></p>
<p data-start="369" data-end="518">勉強会後にはささやかながら懇親会を開催させていただき、その中でOptimizerに関する率直なご意見やご要望などもお聞かせいただきました。</p>
<p data-start="369" data-end="518">ご参加いただいた皆様、ありがとうございました！</p>
<h2>ルールベース vs Optimizer</h2>
<p data-start="343" data-end="421">勉強会では、「巡回セールスマン問題」という有名な組合せ最適化問題を例に、ルールベースによる計画とOptimizerによる計画の違いを見てみました。<br />せっかくの機会なので、本ブログでもその内容を簡単にご紹介したいと思います。</p>
<blockquote>
<p data-start="369" data-end="518">巡回セールスマン問題</p>
<div style="text-align: center;"></div>
<div style="text-align: center;"><img alt="tsp1.png" src="https://www.flexsche.com/blog/uploads/tsp1.png" width="355" height="355" class="mt-image-none" /></div>
<p data-start="369" data-end="518">都市0から出発し、都市1～10を好きな順番で訪問して、再び都市0に戻るとき、<br />どの順番で回るのが最短経路になるでしょうか。</p>
</blockquote>
<p>FLEXSCHEでこの問題を表現するならば、</p>
<blockquote>
<p>・計12個のオーダー（スタートの都市0 + 都市1～10 + ゴールの都市0）が存在し、全て単工程</p>
<p>・都市間の移動距離を工程の動的な前段取り時間とみなす</p>
<p>・資源は「セールスマン」1名</p>
<p>このとき動的段取り時間が最も短くなるような作業順は？</p>
</blockquote>
<p>と考えられます。</p>
<p>さて、ルールベースによる計画とOptimizerによる計画では解き方や結果にどのような差が生まれるでしょうか。</p>
<h3>ルールベースによる計画</h3>
<p>ルールベースとは、「次に何をするか」をあらかじめ決めたルールに従って順番に選んでいく方法です。<br data-start="352" data-end="355" />今回の巡回セールスマン問題であれば、素直なルールとして「現在地から最も近い都市を次に訪れる」という考え方が挙げられます。<br />この考え方を手順にすると、次のようになります。</p>
<pre data-role="codeBlock" data-info="" class="language-text"><code>STEP1. 出発地点からスタート
STEP2. 未訪問の都市の中で最も近い場所を選ぶ
STEP3. その場所に移動
STEP4. 全ての都市を訪問するまでSTEP2-STEP3を繰り返す
STEP5. 最後に出発地点に戻る<br /></code></pre>
<p>実は、この手順はFLEXSCHE における資源主導ディスパッチングのデフォルト設定に相当します。<br data-start="631" data-end="634" />ということで、資源主導ディスパッチングを実行した結果がこちらです。</p>
<p><img alt="tsp2-2.png" src="https://www.flexsche.com/blog/uploads/tsp2-2.png" width="599" height="487" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>
<p>0→10→2→7→5→4→6→8→1→9→3→0というルートになりました。<br /><br />序盤のうちは近場の都市に訪問しているので効率が良さそうですが、終盤になると遠い都市が残り大移動を繰り返しています。<br />いわゆる局所最適に陥ってしまった状態です。<br />もちろん、より細かいルールを作れば終盤の大移動を防げるかもしれませんが、そうしたルールを考えるのはなかなか大変ですよね。</p>
<h3>Optimizerによる計画</h3>
<p>Optimizerでは部分的に良い選択を積み重ねるのではなく、全体の移動距離が最小になるように計画を立てます。<br />Optimizerの「動的段取りの最小化」機能を用いて最適化を実行した結果がこちらです。</p>
<p><img alt="tsp3-2.png" src="https://www.flexsche.com/blog/uploads/tsp3-2.png" width="600" height="483" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>
<p>0→10→2→4→7→5→6→3→8→1→9→0というルートになりました。なお今回の問題設定だとこれが最適解です。<br />円を描くようなルートになっており、見た目にも無駄な移動が少ないことが分かるでしょう。</p>
<p>今回の規模であれば最適化は0.1秒もかからずに完了します。しかし一般的にはデータ量が増えると最適化に時間を要することが多くなります。<br data-start="131" data-end="134" />そのような場合には、まずルールベースで良い初期解を作成してそれを最適化にかけるという手法がよく用いられます。</p>
<h2>参加者様の声と今後</h2>
<p>「難解な機能だと思っていたが、思ったより使いやすそう」「実プロジェクトでOptimizerを使うイメージがついた」などのご感想を多くいただきました。</p>
<p>一方で「さらに簡単な設定で使いたい」「より多様な目的に対する最適化に対応してほしい」といったご要望もいただいております。</p>
<p data-start="238" data-end="315">Optimizerは弊社としても現在特に力を入れている製品の一つです。<br data-start="273" data-end="276" /> 皆様からのこのようなご意見・ご要望を積極的に取り入れながら、今後も開発を進めております。</p>
<p data-start="669" data-end="701">「こんな機能があったら使ってみたい」といったご意見も大歓迎です。<br />ぜひお気軽にお聞かせください。</p>
<p data-start="708" data-end="735">今後ともFLEXSCHE Optimizerの進化にご期待ください！</p>
<p data-start="369" data-end="518"></p>
<p data-start="369" data-end="518"></p>
<p data-start="369" data-end="518"></p>
<p data-start="369" data-end="518"></p>]]>
        
    </content>
</entry>

<entry>
    <title>長距離移動はだいたい何か起きる</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2026/02/2026116.html" />
    <id>tag:www.flexsche.com,2026:/blog//1.121</id>

    <published>2026-02-16T04:10:00Z</published>
    <updated>2026-02-16T07:52:35Z</updated>

    <summary>家庭の事情もあって、この2年ほど時々上海へ戻っています。 で、毎回思うんですが-...</summary>
    <author>
        <name>CHO</name>
        
    </author>
    
        <category term="エッセイ" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p>家庭の事情もあって、この2年ほど時々上海へ戻っています。
で、毎回思うんですが----長距離移動って、だいたい何か起きます。
もちろん主催者は私です（だいたい）。</p>

<p>今回は <strong>2026年1月16日</strong>、成田T3 21:00発の便で帰ったときの話。備忘録としてまとめます。</p>

<h2>0. 本日のメニュー（障害物競走フルコース）</h2>

<p><img alt="narita_1.png" src="https://www.flexsche.com/blog/uploads/narita_1.png" width="250" height="364" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></p>

<p>ざっくり言うと、こうでした。</p>

<ul>
<li>京急遅延（山手線の影響）</li>
<li>乗換が厳しい気配</li>
<li>T2→T3、ダッシュかバスかの賭け</li>
<li>ギリギリでチェックイン成功</li>
<li>......と思ったら便が遅延</li>
<li>浦東が濃霧で着陸不可→虹橋へ転進</li>
<li>着いたのに降りられない（駐機場が空いてない）</li>
<li>迎車キャンセル＆虹橋でタクシー探し</li>
<li>到着：深夜3時過ぎ（日本時間4時）</li>
</ul>

<p>移動というより、もはや<strong>帰省</strong>ではなく<strong>帰還</strong>でした。</p>

<h2>1. 18:36発（予定）の京急に乗る：最初の分岐</h2>

<p>その日は21:00発なので、午後5時に会社を出て、品川で軽く何か食べてから、
<strong>18:36発の京急本線（浅草線直通 → 京成高砂で乗換 → 成田方面）</strong>の想定でした。</p>

<p>......が、山手線の遅延が京急に波及し、品川出発が約8分遅れ。
この時点で、私の脳内では赤字でこう表示されます。</p>

<blockquote>
  <p>「京成高砂、たぶん無理」</p>
</blockquote>

<p>ここで一瞬迷いました。
「途中で降りて、別ルートに切り替えたほうがいいのでは？」</p>

<p>ただ、落ち着いて考えると（落ち着いてはいませんが）</p>

<ul>
<li>そもそも降りる候補駅があまりない</li>
<li>遅れが途中で多少取り戻せる可能性もある</li>
<li>そして何より、この列車自体が <strong>空港第2ビル駅</strong> まで行く</li>
</ul>

<p>という状況。</p>

<p>要は、</p>

<ul>
<li><strong>不確実な切替に賭ける</strong>（降りて別ルート）</li>
<li><strong>確実に前進する</strong>（このまま乗って空港へ）</li>
</ul>

<p>の二択でした。</p>

<p>結局、「少し遅れても空港に着けば、走ればチェックイン締切に間に合うかもしれない」と判断して、
<strong>降りずに乗り続ける</strong>ことにしました。</p>

<p>結果として、ここは正解。
空港第2ビル駅には予定より約20分遅れで着きましたが、ちゃんと着きました。</p>

<h2>2. 空港第2ビル駅→T3：走るか、バスに賭けるか</h2>

<p>空港第2ビル駅に着いた時点で、出発予定時刻まで残り1時間ちょっと。
しかもT3はT2から少し距離があるので、降りた瞬間から「はい、今日の運動ここです」と言わんばかりに走り始めます。</p>

<p>普段なら、T2からT3は「走ればいい」という結論に落ち着くことが多いです。</p>

<p>ところがその日、T2の入口付近にちょうどT3行きのシャトルバスが停まっていて、
車内も人が多くて、雰囲気的に</p>

<blockquote>
  <p>「これ、すぐ出るやつでは？」</p>
</blockquote>

<p>となりました。</p>

<p>ただし、完全に運任せにするのも怖い。
そこで自分の中でルールを1つ決めました。</p>

<p><strong>「3分動かなかったら降りて走る」</strong></p>

<p>この"条件付き賭け"は、意外と効きます。
迷いが長引く一番の原因は、基準がないことなので。</p>

<p>バスに飛び乗った直後は、心の中で秒針と格闘しながら
「動け...動け...」と念じていましたが、幸いわりとすぐ発車。</p>

<p>結果、ギリギリでチェックイン締切に間に合いました。</p>

<p>ここで私は一度、勝利を確信します。</p>

<blockquote>
  <p>「よし、今日終わった」</p>
</blockquote>

<p>----終わってませんでした。</p>

<h2>3. 「間に合った」のに遅延：そして濃霧で虹橋へ</h2>

<p>チェックインを終えて搭乗口へ行くと、今度は便が遅延。
理由は天候。</p>

<p>ここはもう、私の努力の管轄外なので
「はいはい、そう来ますよね」
と気持ちを切り替えて待機。</p>

<p>そして上海（浦東）付近に来た頃、アナウンス。</p>

<ul>
<li>浦東は濃霧でしばらく旋回待機</li>
<li>30分ほど経っても状況が厳しく</li>
<li><strong>虹橋へ転進して着陸</strong></li>
</ul>

<p>虹橋には無事に降りられました。
......が、今度は</p>

<blockquote>
  <p>「駐機場所が空いていないので、機内で待機」</p>
</blockquote>

<p>という展開。
着いたのに降りられない。
このパターン、地味に精神に効きます。</p>

<p>結局、機内でさらに1時間以上待つことになりました。</p>

<p>その間にやることが増えます。</p>

<ul>
<li>浦東到着前提で頼んでいた迎車をキャンセル</li>
<li>虹橋でタクシー・移動手段を再設計</li>
</ul>

<p>最終的に宿に着いたのは深夜3時過ぎ。</p>

<p>移動って、最後まで油断できませんね。
（油断してたつもりはないんですが......）</p>

<h2>4. 毎回"何か起きる"のは、たぶん構造の問題</h2>

<p>ここまで書いていて思い出したんですが、上海へ戻るたびに大小さまざまなイベントが発生しています。</p>

<ul>
<li>身分証明系をうっかり忘れる（運良く大きな問題にはならず）</li>
<li>京急で乗る列車を間違える</li>
<li>チェックインカウンターの行列で締切ギリギリ</li>
</ul>

<p>たぶん理由は単純で、長距離移動は</p>

<ul>
<li>工程（ノード）が多い</li>
<li>どこか1つが崩れると後ろに連鎖しやすい</li>
<li>しかも締切（チェックイン等）を跨ぐと、被害が跳ね上がる</li>
</ul>

<p>という"串刺し構造"だからだと思います。</p>

<p>そして慣れてくると、同じルートだからと油断して、
<strong>緩衝（余裕時間）を削りがち</strong>。
結果、システムが常にギリギリで動いて、
小さい遅延が大きい問題に化けやすくなります。</p>

<p>（熟練って、必ずしも強さじゃないですね......）</p>

<h2>5. その場の迷いを減らす、小さいルール</h2>

<p>今回、自分の中で「これはよかった」と思ったのが、
シャトルバスの</p>

<p><strong>「3分動かなかったら降りて走る」</strong></p>

<p>みたいな、条件付きルールです。</p>

<p>完璧な計画は作れなくても、
<strong>迷いを短くするための基準</strong>は作れる。
それだけで、現場の消耗が少し減る気がします。</p>

<p>（次は、証明書類のチェックだけは主催者としてちゃんとやりたいです。）</p>

<h2>6. 2026年以降の話：手すりは掴んでおいた方がいいかもしれない</h2>

<p>最後に少しだけ余談です。
これは完全に私の個人的な予感ですが、2026年あたりからAIの影響で、
仕事でも生活でも「手順」や「前提」が更新される速度が上がって、
予定通りに進まないことが増える気がしています。</p>

<p>そうなると、長距離移動と同じで、</p>

<ul>
<li>ノードが増える</li>
<li>連鎖が起きやすくなる</li>
<li>途中で組み替える力が必要になる</li>
</ul>

<p>という状況が、日常側にも広がるのかもしれません。</p>

<p>というわけで皆さん、どうか手すりは掴んでおいてください。
（できれば私も、次回はもう少し平穏に着きたいです。）</p>
]]>
        
    </content>
</entry>

<entry>
    <title>白酒工場をスマート化せよ！FLEXSCHE CarryOutの挑戦</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2026/01/Baijiu-CarryOut.html" />
    <id>tag:www.flexsche.com,2026:/blog//1.117</id>

    <published>2026-01-20T00:40:00Z</published>
    <updated>2026-01-20T00:36:45Z</updated>

    <summary>私が2021年9月に1回目のブログを投稿し、2022年9月に2回目、2023年1...</summary>
    <author>
        <name>Ran</name>
        
    </author>
    
        <category term="製品・サービス" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p>私が2021年9月に1回目のブログを投稿し、<br />2022年9月に2回目、2023年11月に3回目、そして今回が2026年1月となりました。<br />社員が増えたおかげで投稿ペースがゆるやかになり、次は2027年になるかもしれませんね。</p>
<p>昨年10月に海外からの引き合いで、<br />中国の大手白酒（パイチュウ/ バイジュウ）メーカーへの提案に携わる機会がありました。<br />今回は製品・サービスカテゴリへの投稿ではありますが、酒好きの方も多いと思いますので、<br />白酒そのものについても少しご紹介しておきます。</p>
<hr />
<p></p>
<p>同じ蒸留酒でも、日本の焼酎とは少し異なります。<br />焼酎が25度前後なのに対し、白酒は40度以上が一般的です。<br />また、原料や使用する微生物、発酵方法も異なります。<br />焼酎では液体発酵が多いのに対して、白酒は固体発酵や半固体発酵を行う点が特徴的です。</p>
<p>白酒の製造工程は、概ね以下のような流れです。</p>
<p></p>
<ul>
<li data-start="53" data-end="99">
<p data-start="56" data-end="99">原料処理（洗浄・浸漬）<br data-start="71" data-end="74" /> 　<span style="color: #808080;">高粱などの穀物を洗い、水に漬けて柔らかくします。</span></p>
</li>
<li data-start="101" data-end="144">
<p data-start="104" data-end="144">蒸す（蒸煮）<br data-start="114" data-end="117" /> 　<span style="color: #808080;">原料を蒸してデンプンを糊化させ、糖化しやすくします。</span></p>
</li>
<li data-start="146" data-end="205">
<p data-start="149" data-end="205">冷却・曲（麹）を添加<br data-start="163" data-end="166" /> 　<span style="color: #808080;">蒸した原料を冷まして曲を混ぜます。曲には糖化・発酵を行う微生物が含まれます。</span></p>
</li>
<li data-start="207" data-end="249">
<p data-start="210" data-end="249">糖化・発酵準備<br data-start="221" data-end="224" /> 　<span style="color: #808080;">微生物がデンプンを糖に分解し、発酵が始まります。</span></p>
</li>
<li data-start="251" data-end="299">
<p data-start="254" data-end="299">窖（発酵槽）に投入<br data-start="267" data-end="270" /> 　<span style="color: #808080;">固体のまま地下の発酵槽（窖）に入れ、固体発酵を行います。</span></p>
</li>
<li data-start="301" data-end="338">
<p data-start="304" data-end="338">発酵<br data-start="310" data-end="313" /> 　<span style="color: #808080;">数週間〜数か月発酵させ、香りや味が形成されます。</span></p>
</li>
<li data-start="340" data-end="380" data-is-last-node="">
<p data-start="343" data-end="380" data-is-last-node="">甑（こしき）で蒸留<br data-start="484" data-end="487" /> 　<span style="color: #808080;">発酵後の固体を甑で蒸し、蒸気でアルコールを取り出します。</span></p>
</li>
</ul>
<p></p>
<hr />
<p></p>
<p data-start="116" data-end="215">さて、本題に入ります。<br data-start="127" data-end="130" />この白酒工場では、高度な自動化と制御が導入されており、工程間は基本的に無人で、<br data-start="169" data-end="172" />スマートクレーン、RGV、ロボットなどを駆使した<strong>スマートファクトリー</strong>を目指しています。</p>
<p data-start="217" data-end="307">今回の要件は、MES、立体自動倉庫、エネルギーシステム、<br data-start="245" data-end="248" />デジタルツイン、制御システムなどと連携し、計画から<strong>リアルタイム再計画</strong>、<br data-start="283" data-end="286" />そして<strong>計画遂行</strong>までを視野に入れたものです。</p>
<p data-start="309" data-end="445">スケジューリング上の課題（工程間の占有やRGV走行の最適化など）もありますが、<br data-start="348" data-end="351" />それ以前に、設備・システムからの情報をFLEXSCHEと<strong>リアルタイムに</strong>連携させ、<br data-start="394" data-end="397" /><strong>状況に応じて再計画</strong>を行い、それに基づいてRGV・ロボットを制御することが求められます。</p>
<p>さらに、白酒の製造では<strong>温度管理</strong>が極めて<strong>重要</strong>で、<br />各工程で一定の温度を保つためにはエネルギー供給が<strong>安定</strong>していなければなりません。<br data-start="320" data-end="323" /><br />しかし、同時に多数の設備を稼働させることでエネルギー需要が集中したり、<br />外部要因によって供給自体が不安定になったりすると、温度制御に影響を及ぼすことがあります。<br data-start="404" data-end="407" /><br />そのため、設備の同時稼働数や稼働<strong>タイミングを制御</strong>しつつ、<br />エネルギー供給状況を<strong>リアルタイムに監視</strong>し、変動に応じて<strong>柔軟に</strong>対応する必要があります。<br data-start="483" data-end="486" /><br />こうした制約は、日程計画や生産計画にも直接影響するため、<br />実際の稼働状況に応じて計画を見直す"<strong>リアルタイムな再計画</strong>"の仕組みが欠かせません。</p>
<p><img alt="2511_Firefly1.png" src="https://www.flexsche.com/blog/uploads/2511_Firefly1.png" width="600" height="343" class="mt-image-none" /></p>
<p></p>
<hr />
<p></p>
<p>「日程計画と製造実行（MES）の間の"計画遂行"を支援するシステムはあるのか？」<br />――そう疑問に思う方もいるかもしれません。</p>
<p>その答えの一つが <a href="https://www.flexsche.com/product/carryout/" title="FLEXSCHE CarryOut">FLEXSCHE CarryOut</a> です。</p>
<p><a href="https://flexsche.com/product/carryout/" title="CarryOut"><img alt="2511_CarryOut.png" src="https://www.flexsche.com/blog/uploads/2511_CarryOut.PNG" width="600" height="283" class="mt-image-none" /></a><br />（詳しくは上記ページ、<br />　そして掲載されている動画と漫画もぜひチェックしてみてください。）</p>
<p>また、CarryOutを試してみたい方は、<br />FLEXSCHEに同梱されている「<a href="https://flexsche.com/product/movies/GPGettingStarted/file/GPGettingStarted-CarryOut.pdf">CarryOut入門ガイド</a>」もおすすめです。<br />（入門ガイドの<a href="https://flexsche.com/product/movies/GPGettingStarted/">動画</a>もあります。）</p>
<p>さらに定期開催の「<a href="https://www.flexsche.com/events/smartfactory_ws/" title="フレクシェスマート工場ワークショップ">フレクシェスマート工場ワークショップ</a>」でも<br />実際のデモを体験できますので、ご興味のある方はぜひご参加ください。</p>
<hr />
<p></p>
<p>今回の案件では、現地パートナーと協力してCarryOutの活用を提案し、<br data-start="536" data-end="539" />前向きな検討を経て正式に採用されました。<br />本件は、中国における初のCarryOutライセンス導入案件となります。</p>
<p>こうした海外案件を通じて、<br />FLEXSCHEがグローバルに活躍する可能性を感じています。</p>
<p><img alt="2511_GP_CarryOut.png" src="https://www.flexsche.com/blog/uploads/2511_GP_CarryOut.png" width="600" height="362" class="mt-image-none" /></p>
<p>ところで、私は実はあまり酒が飲めません。<br />ですが、もしFLEXSCHEを活用したスマートファクトリーでつくられた白酒が完成したら、<br />きっと別格の味がするに違いありません。</p>
<p>スマートファクトリーがもたらす未来を感じながら、<br />その白酒が飲める日を、楽しみにお待ちしております。</p>]]>
        
    </content>
</entry>

<entry>
    <title>2025年パートナー会を開催！</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2025/12/2025.html" />
    <id>tag:www.flexsche.com,2025:/blog//1.118</id>

    <published>2025-12-08T06:00:00Z</published>
    <updated>2025-12-08T06:10:14Z</updated>

    <summary>2025年11月21日、今年も品川でパートナー会を開催しました。毎年徐々に規模が...</summary>
    <author>
        <name>ミヤモト</name>
        
    </author>
    
        <category term="社外イベント" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p>2025年11月21日、今年も品川でパートナー会を開催しました。毎年徐々に規模が拡大して、参加者は我々も含めてなんと90名以上！ <br /> 今年のプログラムも多彩な内容で、CSの活動紹介や今後の開発予定など、盛りだくさんの構成となりました。 どのセッションも参加者の皆さんが熱心に耳を傾けていたのが印象的でした。</p>
<p><img alt="2025パートナー会_後ろからの写真.jpg" src="https://www.flexsche.com/blog/uploads/f2665c984ce253d0d22684fab9270c8e98ab818b.jpg" width="450" height="338" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>
<p>会の目玉はニシが導入した「パトライト」。（詳細は<a href="https://www.flexsche.com/blog/2025/11/co-presentation.html" title="プレゼンも&quot;計画&quot;通りに！">この記事</a>をご覧ください。） <br /> 持ち時間に応じて緑→黄色→赤と点灯し、予定時間をオーバーするとブザーの音が鳴り響く...！発表者は「やばい！」と焦り、会場はちょっとした笑いに包まれました。</p>
<p><img alt="2025パートナー会_発表の様子.jpg" src="https://www.flexsche.com/blog/uploads/144667fce14db1565bdcabeced8f4a610579719b.jpg" width="450" height="338" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>
<p>そんな緊張感もありつつ会は進行し、FLEXSCHEで立てた計画(下)と最終的な実績(上)はこちら。 毎年時間通りに終わらないことでお叱りを受けているパートナー会でしたが、少々遅れはでたものの今年は及第点ではないでしょうか？</p>
<p><img alt="2025パートナー会_計画と実績.png" src="https://www.flexsche.com/blog/uploads/3fbd2980c7920f5dca57dcc9dbd0ca72e7e7e80e.png" width="600" height="165" class="mt-image-none" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>
<p>懇親会では、パートナー企業の皆さんとスタッフが入り混じって、新しい取り組みの話題から今年の成功事例、来年の抱負まで、テーブルごとに熱のこもった交流が続きました。 私も演台に立ち、会の締めのあいさつを担当しました。 <br /> 締めのあいさつでは、日頃の協力への感謝と次年への期待をお伝えし、温かな拍手に包まれて会を終えることができました。</p>
<p><img alt="2025パートナー会_締めのあいさつ.jpg" src="https://www.flexsche.com/blog/uploads/1234d610900b1bdf37e05b5714c20120419429c6.jpg" width="450" height="337" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>
<p>今年も遠方から多くの方にご参加いただき、スタッフ一同感謝の気持ちでいっぱいです。年に一度、皆さんにお会いできるのを楽しみにしています。 <br /> また、来年はよりスムーズで心地よい進行を目指し、皆さまが持ち帰りたい学びを、さらに分かりやすい形でお届けしてまいります。</p>]]>
        
    </content>
</entry>

<entry>
    <title>プレゼンも&quot;計画通り&quot;に！CarryOutがタイムキーパーになった日</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2025/11/co-presentation.html" />
    <id>tag:www.flexsche.com,2025:/blog//1.116</id>

    <published>2025-11-07T01:30:00Z</published>
    <updated>2025-11-07T03:54:12Z</updated>

    <summary>プレゼンの時間管理――。これは、どんな企業イベントでも悩ましいテーマではないでし...</summary>
    <author>
        <name>ニシ</name>
        
    </author>
    
        <category term="技術" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="製品・サービス" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p>プレゼンの時間管理――。<br />これは、どんな企業イベントでも悩ましいテーマではないでしょうか。</p>
<p>実は私たちFLEXSCHE開発チームも、去年のパートナー会でまさにその洗礼を受けました。<br />そう、<strong>プレゼンが押しまくった</strong>のです。<br />発表者が熱く語るのはうれしいけれど、次の人がソワソワ、進行スタッフは時計とにらめっこ。<br />「計画通りに進まない...」――いや、私たちのソフトがまさに"計画を守る"ためのものじゃないか！</p>
<p>というわけで、今年は本気を出しました。<br />使うのはもちろん、我らが <a href="https://www.flexsche.com/product/carryout/"><strong>FLEXSCHE CarryOut</strong></a>。<br />「計画立案と遂行を支援する」ソフトを、<strong>プレゼンの遂行管理</strong>に使ってみようじゃないか、と。</p>
<p></p>
<p>その第一弾として、先日開催した<strong>「FLEXSCHE バージョン24.1 新機能発表会」</strong>で、実際にCarryOutを導入してみました。</p>
<p>発表スケジュールをCarryOutに登録し、各プレゼンを「作業工程」として管理。<br data-start="725" data-end="728" />発表が始まるとCarryOut上でリアルタイムに進捗を更新し、スクリーンの片隅には「残り時間○分！」のカウントダウンを表示するようにしたのです。</p>
<div class="pic_with_caption" style="display: flex; flex-direction: column; align-items: center;"><img alt="coc_timealert.gif" src="https://www.flexsche.com/blog/uploads/893a3b4333b2d054f1794f6ccc920d0c5045459a.gif" width="450" class="mt-image-center" />
<p class="cap">（時間をオーバーすると赤く光ります）</p>
</div>
<p></p>
<p>結果はどうだったか？</p>
<p>めちゃくちゃ効果ありました。<br />発表者も「お、あと3分か！」と自然に意識するようになり、タイムキーパーの焦り顔も消滅。<br />全体が<strong>ほぼ計画通り</strong>に進行できたのです。</p>
<p>CarryOutが、まさに<strong>裏方タイムキーパー</strong>として活躍してくれました。</p>
<div class="photo-c tac">
<p class="expansion modal"><img src="https://www.flexsche.com/blog/uploads/251020_new_feature_result_s.png" width="450" alt="" class="overimg" /></p>
<p class="cap">結果のガントチャート。計画通り、17時までにすべてのセッションを終えました。</p>
</div>
<p>　</p>
<p>この成功を受けて、私たちは次の一歩を踏み出しています。<br data-start="1026" data-end="1029" />現在、<strong>CarryOutとパトライトを連携させて時間を「光」で見える化する仕組み</strong>を開発中です。</p>
<p>残り時間が少なくなると、ランプが黄色→赤に点灯。<br />プレゼンの"進行状況"が、会場全体に可視化されるという仕掛けです。<br />時間が押しているのがバレバレなので、プレゼンターも自然とペースアップ（？）してくれるはず。</p>
<p>「見える化」と「楽しい仕掛け」を両立する――まさに、FLEXSCHEらしいアプローチですね。</p>
<p data-start="1338" data-end="1389"></p>
<p data-start="1338" data-end="1389">この"光るCarryOut"は、今月に開催予定のパートナー会でデビュー予定です。どこまで活躍できるか、私たち自身も楽しみです。</p>
<p data-start="1338" data-end="1389"></p>
<h2>おまけ</h2>
<p data-start="153" data-end="234">現在、次回イベントに向けて進めている「光る時間管理」――<br data-start="181" data-end="184" />これは、<strong data-start="188" data-end="208">CarryOutサーバーのAPI</strong>を活用することで実現を目指している取り組みです。</p>
<p data-start="236" data-end="319">このAPIを使えば、CarryOut上のスケジュールや進捗データを外部プログラムから取得・操作でき、他のデバイスやシステムと連携させることが可能になります。</p>
<p data-start="321" data-end="428">今回は例として<strong data-start="328" data-end="337">パトライト</strong>との連携を検討していますが、もちろん対象はそれに限りません。アイデア次第でさまざまな拡張が考えられます。</p>
<p data-start="430" data-end="538">実際にデバイスと連携させるには、<strong data-start="446" data-end="464">外部プログラムでの開発が必要</strong>になりますが、CarryOutのAPIを通じて「現場の動き」をより広く見える化する試みとして、社内でもいろいろと実験を進めています。</p>
<p data-start="540" data-end="603">今後、もし形になってきたら、<strong data-start="554" data-end="578">技術ブログで実装内容をご紹介できるかも？</strong><br data-start="578" data-end="581" />そんな期待も込めて、ただいま開発中です。</p>
<p></p>]]>
        
    </content>
</entry>

<entry>
    <title>計算式勉強会を開催しました！</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2025/10/2509takt-study2.html" />
    <id>tag:www.flexsche.com,2025:/blog//1.115</id>

    <published>2025-10-21T06:40:00Z</published>
    <updated>2025-10-21T07:02:24Z</updated>

    <summary>こんにちは。ふじさきです。 2025年9月26日に計算式勉強会を行いました。去年...</summary>
    <author>
        <name>ふじさき</name>
        
    </author>
    
        <category term="社外イベント" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p>こんにちは。ふじさきです。</p>
<p>2025年9月26日に計算式勉強会を行いました。去年も一度計算式勉強会を実施したのですが、その内容をブラッシュアップしたものです。<br />FLEXSCHEをより使いこなすためのキモとなる計算式に着目したこの勉強会は、<strong>「より効率の良い計算式の書き方や計算式を書くためのヒントや躓きポイントを演習を交えながら体系的に学んでいこう」</strong>という目的で開催しました。</p>
<p>2回目の開催に至った理由は前回も好評だったこともそうですが、計算式を正しく知ることで、より自由度の高いチャートづくりや細かな精度で制約を遵守したり作業順を並べるリスケジュールの作り込みなどといった、FLEXSCHEの長所である計算式を使いこなせれば様々な場所に応用が効くため、その足場づくりをして将来に活かせる財産を作ろうという想いが大きいです。</p>
<hr />
<h2>ちょっとだけ演習問題を見てみよう</h2>
<p>勉強会では座学だけでなく演習も行ったわけですが、そのうちの一問をピックアップ。以前メーリングリストにお問い合わせがあったご質問をアレンジしました。</p>
<p>以下のように、前工程および3つに分かれる後工程があります。同じ色の作業は同じオーダー（受注）によって行われる作業です。</p>
<p><img alt="project_before.png" src="https://www.flexsche.com/blog/uploads/project_before.png" width="602" height="339" class="mt-image-none" /></p>
<p>前工程はR1のみ、後工程はR2-1/R2-2/R2-3を使用します。問題は以下となります。</p>
<p><strong>・後工程は同じ色の作業は同じ資源に割付けるようにしてください。</strong></p>
<p><strong>・17時以降は新規着手せず翌日0時から製造を開始させてください。茶色の前段取りはそれより0時より早くてもかまいません。</strong></p>
<p>もちろん演習問題なのでこの要件は実現可能です。さて、FLEXSCHEユーザーの皆様、どこに何をすればいいというイメージはついたでしょうか？これを実現すると以下のようになります。</p>
<p><img alt="project_after.png" src="https://www.flexsche.com/blog/uploads/project_after.png" width="605" height="317" class="mt-image-none" /></p>
<p>実は1つ目の問題は計算式を使わずとも設定だけで解けてしまうのですが（どうすればいいでしょうか？FLEXSCHEユーザーの方は是非考えてみてください！）、あえて計算式で解いていただきました。本来は標準機能でやれるものはそちらの方がメンテナンス性も処理効率もよいので計算式の乱用も禁物ですよ、というお話もしました。</p>
<p>勉強会はこの演習問題をその場で解けることを目的とはしておらず、解説した内容あるいは資料の内容を思いだしてもらいながら、計算式の引数を読む癖などといったちょっとしたことから実践する等の、最初に書いたような将来の財産づくりのほうを重視していました。なので盛りだくさんの内容となりました。</p>
<hr />
<h2>参加者様の声と今後</h2>
<p>遠方から参加された方も多く、またアンケートでも「続編やより計算式を知りたい」というお声を多くいただけました。「マニュアルや関数の読み方等が参考になった」というお声もありました。<br />「もっと基本的なところを学びたい」「さらに高度な内容を知りたい」というお声もありました。</p>
<p>計算式は常日頃多くの方に求められるテーマなので、今後も随時ブラッシュアップ、あるいは新規の内容で開催できれば、と思っています。すでに経験値を積めるようなコンテンツを出すために動いておりますので、続報をお楽しみに！</p>
<p>ご参加された皆様、お疲れさまでした！<br /><img alt="2510.png" src="https://www.flexsche.com/blog/uploads/2510.png" width="602" height="465" class="mt-image-none" /></p>]]>
        
    </content>
</entry>

<entry>
    <title>新人研修</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2025/09/262.html" />
    <id>tag:www.flexsche.com,2025:/blog//1.114</id>

    <published>2025-09-29T04:00:00Z</published>
    <updated>2025-09-29T04:23:29Z</updated>

    <summary>皆さんこんにちは！ともはらです。 この度、人生2度目の新人研修に参加しました。....</summary>
    <author>
        <name>ともはら</name>
        
    </author>
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p>皆さんこんにちは！<br />ともはらです。</p>
<p>この度、人生2度目の新人研修に参加しました。<br />...と言っても、「最近ともはらがたるんでるから」（実際、腹はたるんでますが）という理由ではありません。<br />今年入社された<span data-teams="true">トネガワ</span>と<span data-teams="true">サワキ</span>のうち、特に<span data-teams="true">トネガワ</span>は新社会人ということもあり、外部の新人研修から得られる学びが大きいと考え、参加を決めました。<br />ちなみに私は「一番若いから」という理由で、ありがたく（？）一緒に参加させていただきました。</p>
<p></p>
<p>◆1日目◆</p>
<p>初日は社会人としての基本姿勢やビジネスマナーについて講義がありました。<br />教科書132ページ分を2日間ですべてこなすハードなスケジュールのため、内容びっちりで大満足！？でした。</p>
<p>【<span data-teams="true">トネガワ</span>の感想】<br /><span data-teams="true">研修初日はお辞儀の仕方、身だしなみや言葉遣いなどマナーに関する講義が中心でした。<br />講義はグループでお互いの発表にフィードバックするという形式で行われ、<br />つい二重敬語を使ってしまうというような、自分では気づきにくい点を知ることができ大変勉強になりました。<br />今後の業務に活かせるよう意識していきたいと思います。</span></p>
<p><span data-teams="true"><img alt="研修利根川.jpg" src="https://www.flexsche.com/blog/uploads/9598c5449785d658ca0ab7de1d269bd9bde4bbbc.jpg" width="900" height="1200" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></span></p>
<p></p>
<p>　</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p>◆2日目◆</p>
<p>2日目は初日に引き続きビジネスマナー、仕事の進め方全般について講義がありました。<br />上司への報告の仕方、名刺交換、来客対応と様々なペアワークがあり、懇切丁寧に教えていただきました。</p>
<p>【<span data-teams="true">サワキ</span>の感想】<br />現在の業務を通じて、「仕事の進め方」について体系的に学ぶ機会がありました。これは非常に有意義な経験であり、今後の業務遂行においても大きな指針となると感じています。<br />前職では製造現場に従事しており、生産計画は専任の担当者が立案していました。作業時間や納期も明確で、自身の担当範囲も限定されていたため、業務の進め方について深く考える機会は少なかったように思います。<br />一方、現在のオフィスワークでは、業務の計画立案から実行、報告までを自ら主体的に行う必要があります。作業にかかる時間の見積もりも不確定であり、担当業務の範囲も広範に渡るため、より高い自律性と判断力が求められます。<br />そのような環境下で、以下のような業務の進行フローを学べたことは、非常に価値のある経験でした。</p>
<ol>
<li><strong>業務指示の受領</strong></li>
<li><strong>計画の立案（不明点は上司へ報告・相談）</strong></li>
<li><strong>業務の開始</strong></li>
<li><strong>中間報告の実施</strong></li>
<li><strong>齟齬の有無を事前に確認</strong></li>
<li><strong>業務終了の報告</strong></li>
<li><strong>業務の振り返り</strong></li>
</ol>
<p>この一連の流れを意識することで、業務の質と効率が向上することを実感しています。今後は、どのような業務においてもこのプロセスを基盤とし、着実に成果を出していけるよう努めてまいります。</p>
<p><span data-teams="true"> </span><img alt="研修澤木.jpg" src="https://www.flexsche.com/blog/uploads/01a24563290c26a3eb594c44cdd0fab4a7451c58.jpg" width="900" height="1200" class="mt-image-left" style="float: left; margin: 0 20px 20px 0;" /></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p>▼まとめ▼</p>
<p>「整理・整頓・清掃・清潔・躾」→「5S」製造業では必須（講師談）らしいです。<br />皆さん知っていましたか？製造業の皆様へ関わる身ながら私は知りませんでした。<br />社会人4年目の私にとっては耳の痛い話（元気に挨拶）や本当に知らないこともあり、大変勉強になりました。<br />3人ともここでの学びを活かして、これからも皆様にお力添えできるよう日々精進してまいります。</p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>]]>
        
    </content>
</entry>

<entry>
    <title>入社のご報告&amp;FLEXSCHEをGoogleカレンダーと連携してみた</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2025/08/flexschegoogle.html" />
    <id>tag:www.flexsche.com,2025:/blog//1.113</id>

    <published>2025-08-13T08:00:00Z</published>
    <updated>2025-08-13T08:06:19Z</updated>

    <summary> 自己紹介 初めまして、2025年5月に開発として入社したトネガワと申します。 ...</summary>
    <author>
        <name>トネガワ</name>
        
    </author>
    
        <category term="技術" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="社内の様子" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p></p>
<h2>自己紹介</h2>
<p>初めまして、2025年5月に開発として入社したトネガワと申します。</p>
<p>
現在入社から約3カ月が過ぎたところで、すでに展示会に参加させていただいたり、メーリングリストで対応させていただいております。至らぬ点も多々あるかと思いますが、どうぞよろしくお願いいたします。
</p>

<p>
好きなアルゴリズムはKaratsuba法です。基本的な式変形や発想の転換で計算時間が数十倍、数百倍も変わると気持ちが良いですね。
</p>

<p><script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?lang=css&amp;skin=default"></script></p>
<style>
    li.L0, li.L1, li.L2, li.L3, li.L4, li.L5, li.L6, li.L7, li.L8, li.L9 {
        list-style-type: decimal !important;
        color: #555;
        list-style-position: outside;
        resize: horizontal;
        margin-left: 0px;
        padding-left: 10px;
        font-size: 13px;
    }
details {
  border: 1px solid #333;
  padding: 1em;
}
</style>

<p></p>
<p></p>
<h2>Googleカレンダーと連携</h2>
<h3>アドインの作り方</h3>
<p>FLEXSCHEは標準機能の汎用性の高さがウリですが、新たに自分で機能を作ることもできます。
自分で機能を作る方法には「アクション」や「アドイン」などがあり、C++やPythonなどでコードを書いてより複雑な機能を実装できるのがアドインです。</p>

<p>まずは簡単なアドインを作ってみます。</p>
<img alt="アドイン作成.png" src="https://www.flexsche.com/blog/uploads/87b1852aad7156184fc13c3003700ffef75525dc.png" width="700" height="350" class="mt-image-none" style="" />
<p>スクリプト雛形生成ツールからアドインを作成します。ここでアドイン名、言語、実行方法を指定します。
アドインの実行方法はメニューバーから選んで使う、一定時間ごとに実行、作業を動かしたときに実行など多種多様です。</p>
<p></p>

<pre class="prettyprint lang-py linenums">
import clr
clr.AddReference('FLEXSCHE.Interop.AIM')
clr.AddReference('FLEXSCHE.Interop.SData')
clr.AddReference('FLEXSCHE.Interop.GUI')
clr.AddReference('FLEXSCHE.Interop.SDLib')
clr.AddReference('FLEXSCHE.Interop.FSEditor')
clr.AddReference('FLEXSCHE.Interop.GPEns')
clr.AddReference('FLEXSCHE.Net')
clr.AddReference('PyLib')
from FLEXSCHE.Interop import AIM, SData, GUI, SDLib, FSEditor, GPEns
from FLEXSCHE.XmlHelper import *
from PyLib import Script

def SelfRegistration(addIns: AIM.AddIns):
  ## この部分を変更した場合は「アドイン再登録」を実行してください
  addin = addIns.AddScript("movelog", int(GUI.AddInKeyType.AddInKeyHookAfterMovingOperation))


def movelog(keyEntity: AIM.KeyEntity):
  ## 不要な行は削除してください
  operRec = Script.Cast(keyEntity.get_ParamObject(int(GUI.ParamIDType.ParamIDOperationRec)), SData.SDOperationRec)
  timeChart = Script.Cast(keyEntity.get_ParamObject(int(GUI.ParamIDType.ParamIDTimeChart)), GUI.TimeChart)
  movingOperationInfo = Script.Cast(keyEntity.get_ParamObject(int(GUI.ParamIDType.ParamIDMovingOperationInfo)), GUI.MovingOperationInfo)
  ## ここにコードを書いてください

  project = timeChart.Project
  dataspace: SData.SDSpace = Script.Cast(project.DataSpace, SData.ISDSpace)
  utility: SDLib.SDLUtility = Script.Cast(dataspace.SDLUtility, SDLib.ISDLUtility)
  resBefore = Script.Cast(movingOperationInfo.ResourceBefore, SData.SDResourceRec).Code
  resAfter = Script.Cast(movingOperationInfo.ResourceAfter, SData.SDResourceRec).Code
  startTime = utility.TimeToString(operRec.StartTime)
  endTime = utility.TimeToString(operRec.EndTime)
  S = f'{operRec.Code}: {resBefore}->{resAfter} {startTime} ~ {endTime} に変更されました'
  project.Panels.MessagePanel.AddLine('general', S)

  return True


def alert(msg: str):
  Script.ShowMessageBox(msg, "FLEXSCHE", AIM.MessageBoxType.MBTOk)

# モジュール名、アドイン名を"movelog"として登録
# Pythonを使う場合はアドイン設定からPythonのDLLを登録する必要があります
</pre>
<p>
雛形生成ツールでOKを押すと上記のようなテンプレートが作成されます。
26行目～34行目の部分を書き足すと、作業を動かしたときに変更ログを出力するアドインができました。</p>
<img alt="スクリーンショット 2025-08-12 174556.png" src="https://www.flexsche.com/blog/uploads/c8bedfd97632c5b16898a90ee71a96f5e736fbdd.png" width="700" height="260" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" />
<h3>Googleカレンダーと連携するアドインを作ろう！</h3>
<p>休暇や会議の予定をGoogleカレンダーで管理していて、それを考慮して製造計画を立てたいといったシチュエーションは割とあるのではないでしょうか。</p>
<p>これはツールを使って<br>
Googleカレンダー　→　エクセルファイル　→　CSVファイル　→　EDIF取り込み<br>
としても実現できますが、取り込むたびに操作する項目が多く、できる操作も限定的です。</p>
<p>
そこで、アドインでFLEXSCHE Components(APIのようなもの)とGoogleカレンダーAPIを使うと両者が直接やりとりできるようになり、より簡単に複雑な操作を実現できる！<br>というのがこの記事の本題になります。</p>
<p>それでは、早速作っていきましょう！<br>
まずはGoogleカレンダー上の予定を自由カレンダーとして取り込む機能を実装したいと思います。</p>

<br>
<h4>API周りの設定</h4>
<p>
APIの設定方法は<a href="https://developers.google.com/workspace/calendar/api/quickstart/python?hl=ja">Google Workspaceのチュートリアル</a>に詳しく書かれており、基本的にこれを参考にすれば大丈夫です。
</p>

<p>次に、資源ごとにカレンダーを作り、資源名 → カレンダーid の辞書を作っておきます。<br>カレンダーidはAPIの呼び出しに使います。</p>
<pre class="prettyprint" lang-json linenums">
{
  "作業員1" : "11111111111111111111111@group.calendar.google.com",
  "作業員2" : "23232323232323232323232@group.calendar.google.com",
  "作業員3" : "aaaaaaaaaaaaaaaaaaaaaaa@group.calendar.google.com",
  "作業員4" : "sisisisisisisisisisisii@group.calendar.google.com"
}

// calendar.json
// カレンダーidはGoogleカレンダーの設定から確認できます
</pre>
<br>
<h4>アドインの実装</h4>
<p>まずはライブラリ部分を作りました。(長いため折りたたんでいます)<br>大まかに以下のようなことができます。</p>

<ul>
<li>カレンダーの予定を取得</li>
<li>カレンダーの予定を追加
<ul>
<li>通知の時間や個数を設定</li>
<li>作業の色を属性(オーダー、工程、資源など)に合わせて指定</li>
</ul>
</li>
<li>カレンダーの予定を削除</li>
<li>FLEXSCHEに自由カレンダーを登録</li>
</ul>

<details>
<summary><p>ライブラリ部分(クリックで展開)</p></summary>
<div>
<pre class="prettyprint lang-py linenums">
# CalendarAPI.py
# FLEXSCHEアドイン用
import clr
clr.AddReference('FLEXSCHE.Interop.AIM')
clr.AddReference('FLEXSCHE.Interop.SData')
clr.AddReference('FLEXSCHE.Interop.GUI')
clr.AddReference('FLEXSCHE.Interop.SDLib')
clr.AddReference('FLEXSCHE.Interop.FSEditor')
clr.AddReference('FLEXSCHE.Interop.GPEns')
clr.AddReference('FLEXSCHE.Net')
clr.AddReference('PyLib')
from FLEXSCHE.Interop import AIM, SData, GUI, SDLib, FSEditor, GPEns
from FLEXSCHE.XmlHelper import *
from PyLib import Script
# googleカレンダーapi
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
# インポート
import datetime
import os.path
import inspect
import time
import datetime
import json

# ------------------------ パラメータ ------------------------
# スコープ. アクセス権を指定できる(読み込み、書き込みの許可)
# 変えたらtoken.jsonを消す
SCOPES = ["https://www.googleapis.com/auth/calendar"]

# クエリごとのsleep時間(秒, 小数可)
# apiを大量に呼ばないようにするため
WAITING_TIME = 0.5 

# トークン、カレンダーid等
# token, credentials, calendarをコードと同じ階層に置く
token_path = os.path.join(os.path.dirname(__file__), "token.json")
creds_path = os.path.join(os.path.dirname(__file__), "credentials.json")
calendar_path = os.path.join(os.path.dirname(__file__), "calendar.json")
__Calendars = {}

#　タイムゾーンの設定
# 東京の場合
# 'dateTime': '2025-05-28T09:00:00+09:00', 末尾に+9:00を追加する(offset_timezone)
# 'timeZone': 'Asia/Tokyo',
timezone = "Asia/Tokyo"
offset_timezone = "+09:00"
# -----------------------------------------------------------

class FLEXSCHEData:
  def __init__(self, keyEntity: AIM.KeyEntity) -> None:
    self.env = Script.Cast(keyEntity.get_ParamObject(int(GUI.ParamIDType.ParamIDEnvironment)), GUI.Environment)
    self.project: GUI.Project = self.env.Project
    self.ds: SData.SDSpace = Script.Cast(self.project.DataSpace, SData.ISDSpace)
    self.ut: SDLib.SDLUtility = Script.Cast(self.ds.SDLUtility, SDLib.ISDLUtility)

# デバッグ用
def alert(msg: any) -> None:
  Script.ShowMessageBox(str(msg), "FLEXSCHE", AIM.MessageBoxType.MBTOk)

# カレンダーid(json)を読み込む
def InitCalendar(is_first: bool = True) -> None:
  if is_first:
    global __Calendars
    if calendar_path != '':
      with open(calendar_path, encoding="utf-8_sig") as f:
        __Calendars = json.load(f)
    is_first = False

# recourcecodeのカレンダーidを取得(なければ空文字列)
def GetCalendarId(rescode: str) -> str:
  InitCalendar()
  if rescode in __Calendars:
    return __Calendars[rescode]
  else:
    return ""

# calendaridのresidを取得(複数ある場合初めに見つけたやつを返す. なければ空文字列)
def GetResId(calendarid: str) -> str:
  InitCalendar()
  for k, v in __Calendars.items():
    if v == calendarid:
      return k
  return ""

# カレンダー(の参照)を取得
def GetAllCalendars() -> map:
  InitCalendar()
  return __Calendars

# tokenをチェックしてcredsを返す
def CheckToken():
  creds = None
  if os.path.exists(token_path):
    creds = Credentials.from_authorized_user_file(token_path, SCOPES)
  if not creds or not creds.valid:
    if creds and creds.expired and creds.refresh_token:
      creds.refresh(Request())
    else:
      flow = InstalledAppFlow.from_client_secrets_file(creds_path, SCOPES)
      creds = flow.run_local_server(port=0)
    with open(token_path, "w") as token:
      token.write(creds.to_json())
  time.sleep(WAITING_TIME)
  return creds

# 20250528T090000 -> 2025-05-28T09:00:00
def InsertHyphen(s: str) -> str:
  return s[0:4] + '-' + s[4:6] + '-' + s[6:8] + 'T' + s[9:11] + ':' + s[11:13] + ':00'

# 2025-05-28T09:00:00 -> 20250528T090000
def DeleteHyphen(s: str) -> str:
  return s[0:4] + s[5:7] + s[8:13] + s[14:16]

# FLEXSCHE時間 -> GoogleCalendar時間
def ToGoogleTime(data: FLEXSCHEData, T: float) -> str:
  S = str(data.ut.TimeToISO8601(T))
  assert len(S) != 0
  if len(S) < 13:
    S += 'T0000'
  return InsertHyphen(S) + offset_timezone

# GoogleCalendar時間 -> FLEXSCHE時間
def ToFlexscheTime(data: FLEXSCHEData, T: str) -> float:
  return data.ut.TimeFromISO8601(DeleteHyphen(T))

# 全てのイベントを自由カレンダーとして取り込む (成功したか返す)
def ImportSchedulesAsFreeCalendars(data: FLEXSCHEData, calendarid: int) -> bool:
  creds = CheckToken()
  try:
    service = build("calendar", "v3", credentials=creds)
    events = service.events().list(calendarId=calendarid).execute()["items"]
    rescode = GetResId(calendarid)
    res = data.ds.ResourceSet.get_ResourceRecByCode(rescode)
    for event in events:
      Ts = event['start']['dateTime'] if 'dateTime' in event['start'] else event['start']['date'] + 'T00:00:00' + offset_timezone
      Ts = ToFlexscheTime(data, Ts)
      Te = event['end']['dateTime'] if 'dateTime' in event['end'] else event['end']['date'] + 'T00:00:00' + offset_timezone
      Te = ToFlexscheTime(data, Te)
      rr = data.ds.FreeCalendarSet.CreateFreeCalendarRec(SData.SDFreeCalendarType.SDFCTypeAssociatedToTimeSeries, True)
      rr.set_StartTime(Ts)
      rr.set_Duration(Te - Ts)
      rr.ResourceRec = res
      rr.set_Comment('name', event['summary'] if 'summary' in event else '無題のイベント')
      time.sleep(WAITING_TIME)
    return True
  except HttpError as error:
    return False

# color = {0:資源ごと, 1:オーダーごと, 2:工程ごと}
def GetColor(op: SData.SDataType.SDTypeOperation, res: SData.SDataType.SDTypeResource, color: int) -> int:
  ans = -1
  if color == 0:
    ans = hash(res.Code)
  elif color == 1:
    ans = hash(op.SingleOrderRec.Code)
  elif color == 2:
    ans = hash(op.Specifier)
  else:
    ans = 0 # colorが無効な値なら資源ごとにする
  return (ans + 2) % 12

# リスト中の作業を全て追加(成功したか返す)
def AddAllEvents(data: FLEXSCHEData, ops: list, color: int = 0) -> bool:
  creds = CheckToken()
  try:
    service = build("calendar", "v3", credentials=creds)
    for op in ops:
      for i in range(op.CountOfTaskRecs):
        task = op.get_TaskRec(i)
        if task.IsAssigned == 0:
          continue
        Ts = ToGoogleTime(data, task.AssignmentStartTime)
        Te = ToGoogleTime(data, task.AssignmentEndTime)

        # direction = {0:作業追加時から未来方向に, 1:作業開始前から過去方向に}
        # offset(>=0)分動かした時刻に通知  
        def AddReminder(event: map, direction: bool, offset: int) -> None:
          assert offset >= 0
          if direction == False:
            Tn = datetime.datetime.now(datetime.timezone(datetime.timedelta(hours=9)))
            Sdiff = (datetime.datetime.fromisoformat(Ts) - Tn).total_seconds() - offset * 60
            # 過去には通知しない
            if Sdiff < 0:
              return
            event['reminders']['overrides'].append({
              'method': 'popup',
              'minutes': Sdiff // 60
            })
          else:
            event['reminders']['overrides'].append({
              "method": 'popup',
              "minutes": offset
            })

        # 場所を設定
        def SetPlace(event: map, place: str) -> None:
          event['location'] = place

        # 説明を設定
        def SetDetail(event: map, detail: str) -> None:
          event['description'] = detail

        event = {
          'summary': op.Code,
          'start': {
            'dateTime': Ts,
            'timeZone': timezone,
          },
          'end': {
            'dateTime': Te,
            'timeZone': timezone,
          },
          'colorId': GetColor(op, task.AssignedResourceRec, color),
          'reminders': {
            'useDefault': False,
            'overrides': []
          }
        }
        AddReminder(event, False, 0) # 作業登録時に通知
        AddReminder(event, True, 1) # 作業開始1分前に通知
        SetPlace(event, op.ProcRec.get_Comment('場所')) # 工程マスタのコメント:場所を登録
        SetDetail(event, op.ProcRec.get_Comment('説明')) # 工程マスタのコメント:場所を登録
        event = service.events().insert(calendarId=GetCalendarId(task.AssignedResourceRec.Code), body=event).execute()
        time.sleep(WAITING_TIME)
    return True
  except HttpError as error:
    return False

# 指定した作業を追加(成功したか返す)
def AddEvent(data: FLEXSCHEData, op: SData.SDataType.SDTypeOperation, color: int = 0) -> bool:
  return AddAllEvents(data.ut, [op], color)

# calendaridの全てのイベントを削除(成功したか返す)
def DeleteAllEvents(calendarid: str) -> bool:
  creds = CheckToken()
  try:
    service = build("calendar", "v3", credentials=creds)
    events = service.events().list(calendarId=calendarid).execute()["items"]
    for event in events:
      eventid = event['id']
      service.events().delete(calendarId=calendarid, eventId=eventid).execute()
      time.sleep(WAITING_TIME)
    return True
  except HttpError as error:
    return False

# 指定したイベントを削除 (成功したか返す)
def DeleteEvent(calendarid: str, event: map) -> bool:
  creds = CheckToken()
  try:
    service = build("calendar", "v3", credentials=creds)
    eventid = event['id']
    service.events().delete(calendarId=calendarid, eventId=eventid).execute()
    return True
  except HttpError as error:
    return False
</pre>
</div>
</details>

<br>
<br>

<p>
登録するアドインのコードは以下のようになります。
</p>

<pre class="prettyprint lang-py linenums">
# ImportSchedule.py
from CalendarAPI import *

def SelfRegistration(addIns: AIM.AddIns):
  addin = addIns.AddScript("ImportSchedule", int(GUI.AddInKeyType.AddInKeyMenuHelp))
  addin.MenuString = "予定取込み(自由カレンダー)"

def ImportSchedule(keyEntity: AIM.KeyEntity):
  data = FLEXSCHEData(keyEntity)
  ok = True
  for k, v in GetAllCalendars().items():
    ok &= ImportSchedulesAsFreeCalendars(data, v)
  data.project.FireEvent(GUI.FSEvent.FSEventFreeCalendarRecsAreUpdated)
  if ok:
    alert("取り込みに成功しました")
  else:
    alert("取り込みに失敗しました")
  return True
</pre>

<h4>動作</h4>

<p>以下のようなカレンダーがあります。<br>会議は作業員1と3、休みは作業員4が対象です</p>

<p></p>

<p><img alt="スクリーンショット 2025-08-07 102058.png" src="https://www.flexsche.com/blog/uploads/ef18ec5e956371dc8f393e7930909c0a710ba4e1.png" width="600" height="303" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" />
先ほどのアドインを実行してリスケすると、カレンダー上の予定を考慮して計画を立てることができました。
<img alt="カレンダー前.png" src="https://www.flexsche.com/blog/uploads/b3d23fb167f3c66ab28f1988df5f942458cf56b5.png" width="720" height="300" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" />
<img alt="カレンダー後.png" src="https://www.flexsche.com/blog/uploads/2d8c13e09ca1798eb2aba8261278433c579ed86e.png" width="720" height="300" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<p>逆にGoogleカレンダーに作業を反映することもできます。</p>

<p><details>
<summary><p>アドイン：全作業をカレンダーに登録(クリックで展開)</p></summary></p>

<div>
<pre class="prettyprint lang-py linenums">
# RegisterSchedule.py
from CalendarAPI import *

def SelfRegistration(addIns: AIM.AddIns):
  addin = addIns.AddScript("RegisterSchedule", int(GUI.AddInKeyType.AddInKeyMenuHelp))
  addin.MenuString = "全予定登録"
  addin.Order = 1

def RegisterSchedule(keyEntity: AIM.KeyEntity):
  data = FLEXSCHEData(keyEntity)
  opset = data.ds.OperationSet
  ops = []
  for i in range(opset.CountOfRecords):
    ops.append(opset.get_OperationRec(i))
  ok = AddAllEvents(data, ops, 1)
  if ok:
    alert("登録に成功しました")
  else:
    alert("登録に失敗しました")
  return True
</pre>
</div>

<p></details></p>

<p><img alt="送り返す2.png" src="https://www.flexsche.com/blog/uploads/5b61209739af6a94d9d7a0d1f35fd825c14c1a02.png" width="720" height="750" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></p>

<h2>様々なデバイスと連携</h2>

<p>前章ではFLEXSCHEとGoogleカレンダーを連携させましたが、Googleカレンダーを介して様々なデバイスとも連携することができます。</p>

<p><img alt="IMG_0238.jpeg" src="https://www.flexsche.com/blog/uploads/IMG_0238.jpeg" width="400" height="300" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;"  />
スマートウォッチと連携しました。
作業員それぞれが自身の予定だけ取り込むようにして、作業が変更されたときや開始直前に通知を受け取って作業を進めてもらうというような使い方ができます!</p>
]]>
        
    </content>
</entry>

<entry>
    <title>FLEXSCHEのサンプル集を活用しよう！</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2025/07/GPSamples-Examples.html" />
    <id>tag:www.flexsche.com,2025:/blog//1.108</id>

    <published>2025-07-23T00:45:00Z</published>
    <updated>2025-07-23T00:42:46Z</updated>

    <summary>こんにちは。お久しぶりです。カスタマーサクセスの藤崎です。 FLEXSCHEにご...</summary>
    <author>
        <name>ふじさき</name>
        
    </author>
    
        <category term="製品・サービス" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p>こんにちは。お久しぶりです。カスタマーサクセスの藤崎です。</p>
<p>FLEXSCHEにご興味をお持ちの方や、すでにFLEXSCHEをご利用の方で、こんなことを思ったことはありませんか？</p>
<p>・イメージはホームページを見ればなんとなくわかるけど、実際どんな動きをするのか確認したい！<br />・こんな要件があるのだけれど、FLEXSCHEでできるかな？</p>
<p>そんな時、役に立つのが、「FLEXSCHE GP サンプル集」です。製品の機能に関して実際の動きを紹介するサンプルや、要件に応えたもの、業種ごとのサンプルなどがあります。FLEXSCHEでどんなことができるか、サンプルをご覧いただくと理解が進むかもしれません。</p>
<p>ブログ執筆時点でサンプルが250以上ある中から、よくある要件に応えたサンプルと業種別から1つずつ、ご紹介します。サンプルの検索性も24.0から向上したのでそれも少し触れたいと思います。</p>
<h2>１）段取り回数の上限を指定したい</h2>
<p>よくある質問のうち、「一日の段取り回数を制限したい」という要件について、取り上げているサンプルがあります。<br />このサンプルではある設備上で、1日の段取り回数は3回まで（日を跨ぐものは過去側の日としてカウント）という要件に応えるサンプルです。（[GPサンプル] 日ごとの段取り回数上限）</p>
<p><img alt="初期状態.png" src="https://www.flexsche.com/blog/uploads/0f47291383a2990a40dc13c47b461a55c2aa54f0.png" width="993" height="149" class="mt-image-none" /></p>
<p>まず、資源ガントチャートと、段取り回数をカウントするサインボードがあります。段取り回数の上限値を超えるとサインボードが赤くなります。<br />色が違う作業を連続して作業しようとすると段取りが発生します。特に並び順を気にしないで計画すると以下のように</p>
<p><img alt="段取り違反.png" src="https://www.flexsche.com/blog/uploads/f2d978e4ae0a76ffb96c5c3676a04447b9803692.png" width="982" height="134" class="mt-image-none" /></p>
<p>段取り回数上限である3回を超える日が頻発します。段取り回数を遵守できるようにしたルールを実行すると</p>
<p><img alt="段取り遵守.png" src="https://www.flexsche.com/blog/uploads/64ab8757277348d9e91f5c1b584c5a9b9985e5ef.png" width="987" height="129" class="mt-image-none" /></p>
<p>無事、段取り回数が3回以内に収まりました。単純に段取りを減らすように並べるのではなく、納期も考慮すると、このように同じ品目を分けて生産することも必要です。主題から逸れますがこのサンプルは実は納期も考慮して並び具合を調整しています。</p>
<p>これはサンプルなので1資源（設備・人）上での話にすぎないだろうと思われるかもしれませんが、いくつ資源があっても、あるいは資源ごとに回数が異なっても対応することができます。このサンプルにもう1資源加え、かつその設備は段取り回数の上限を日に2回まで、とマスタを設定すると</p>
<p><img alt="資源増やして遵守.png" src="https://www.flexsche.com/blog/uploads/9e0a4312f09ccd9feb62063de1a1266bb5509f62.png" width="522" height="224" class="mt-image-none" /></p>
<p>このように、複数設備で異なる段取り回数の上限を守れるようになりました（区別のため段取り上限回数を資源ごとに表示させてみました）。工場全体の段取り回数の制限...といった要件にも応用できます。</p>
<h2>２）業種別サンプル：医薬品</h2>
<p>他にも、業種別のサンプルもあります。例えば、医薬品メーカーのサンプル<span>（[GPサンプル] 医薬品）</span>では、</p>
<p>・「消毒用の薬剤の使用量の制限」<br />・「複数工程にわたって同じ容器を利用して搬送・製造する」<br />・「特定製品(濃い青の品目)を作る前、または3作業行った後にCIP（Cleaning In Place。定置洗浄）を実施する」</p>
<p>といった要件を実現しています。業界あるあるではないでしょうか。食品業界等、他業界でも一部要件は重複するものもあるでしょう。</p>
<p>制約未考慮の場合は以下のようになります。</p>
<p><img alt="医薬品before.png" src="https://www.flexsche.com/blog/uploads/c168a52b6a38b269e53c042afc721a689086a6e3.png" width="600" height="575" class="mt-image-none" />　</p>
<p>そして制約を考慮すると以下のように改善されます。</p>
<p><img alt="医薬品after.png" src="https://www.flexsche.com/blog/uploads/30e01d2f2bede05ac7c39370cfcc6fa7d28a1712.png" width="598" height="613" class="mt-image-none" /></p>
<p>このほかにも、FLEXSCHEの機能や製品の紹介に特化したサンプルや、踏み込んだモデリングをしたサンプルなどが収録されています。</p>
<h2>サンプル集の検索性強化：ランチャーから検索・フィルタ可能に</h2>
<p>バージョン24.0では、この多数あるサンプルをさらに検索しやすく改良しています。「ランチャー」では、これまでのFLEXSCHE起動時の画面でのフリーワード検索の機能はもちろん、タグでの検索もできるようになりました。例えば、「FLEXSCHE Analyzer」を利用したサンプルを探したい、という場合は、タグを使うと一発で検索ができます。</p>
<p><img alt="ランチャーフィルタ後.png" src="https://www.flexsche.com/blog/uploads/8da0406099991a1d3e2e645681fb73fad19ab3e3.png" width="595" height="347" class="mt-image-none" /></p>
<p>このようにフィルタリングされます。他にもランチャーは進化をしていますが、それはまた別のお話...。FLEXSCHEマニアな方は旧ランチャーとの差分をお楽しみいただければと思います。</p>
<h2>終わりに：FLEXSCHEでできることをもっと知りたい方へ</h2>
<p>もちろん、サンプル集だけではFLEXSCHEのすべては網羅できませんが、それはFLEXSCHEが多様なニーズに柔軟に応えられる製品であるが故、です。</p>
<p>もっと詳しくFLEXSCHEを知りたい方、FLEXSCHEの導入を検討されている方は<a href="https://www.flexsche.com/blog/2022/07/makeproto.html">プロトタイプの作成</a>をお勧めします。皆様がお持ちのデータや要件をもとに実際にFLEXSCHEでやってみたらどうなるの？というのを無料で作成/検証できます。</p>
<p>すでにFLEXSCHEをご購入されている方は<a href="https://www.flexsche.com/support/mailinglist/">メーリングリスト</a>や<a href="https://www.flexsche.com/support/openday">OpenDay</a>で具体的に質問することも可能です。また一般に有用そうな質問については、<a href="https://www.flexsche.com/support/mailinglist/samples.html">こちら</a>に、サンプル付き（サンプルを開くにはFLEXSCHEが必要です）で実現内容を簡単に紹介しています。どんなことを実現しているのか、興味がある人はぜひ見てみてください。</p>
<p>今回はサンプル集を紹介しました。ちょっとでも興味を持っていただいた方は、ぜひFLEXSCHEを触ってみて、わからない点などがあれば遠慮なくご質問ご相談いただければと思います！</p>]]>
        
    </content>
</entry>

<entry>
    <title>自己紹介</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2025/06/post-21.html" />
    <id>tag:www.flexsche.com,2025:/blog//1.112</id>

    <published>2025-06-26T00:00:00Z</published>
    <updated>2025-06-26T00:01:03Z</updated>

    <summary>自己紹介 はじめまして。2025年4月に営業として入社した澤木と申します。 経歴...</summary>
    <author>
        <name>サワキ</name>
        
    </author>
    
        <category term="社内の様子" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<h2>自己紹介</h2>
<p>はじめまして。2025年4月に営業として入社した澤木と申します。</p>
<p><img alt="sawaki.png" src="https://www.flexsche.com/blog/uploads/45ef052c2f0b8ee9a5105f3c7aada40efa8fb6f4.png" width="198" height="197" class="mt-image-none" /></p>
<h2>経歴</h2>
<p>愛知県出身です。大学で石川県に、就職で長野県に住みました。趣味はドライブで景色を見ることでした。</p>
<p>姨捨(おばすて)の景色</p>
<p><img alt="姨捨_夜景.JPG" src="https://www.flexsche.com/blog/uploads/1986cf7c469947e10e875f048218922ffcffe4de.JPG" width="341" height="341" class="mt-image-none" /></p>
<p></p>
<p>諏訪湖(すわこ)の景色</p>
<p><img alt="諏訪湖‗夜景.JPG" src="https://www.flexsche.com/blog/uploads/1e6c98a92189d3b84d449d79c53a34587bfcaf87.JPG" width="343" height="257" class="mt-image-none" /></p>
<p>首都圏に住むのは今回が初めてです。上京するにあたり、愛車のデミオを手放しました...デミオでいろんなところに行ったのでさみしいです...</p>
<p>前職は長野県にある光学レンズメーカーにいました。光学レンズは半導体露光装置やレーザー加工機、センサーなどに使われています。</p>
<p>長野県民だった私ですが、住んでいた場所的に全然長野市のことは知りません。</p>
<p>＃距離的に長野市よりも名古屋市の方が近かったです。</p>
<p></p>
<p>そんな長野県のことは長野県歌「信濃の国」を聴いたら分かります。</p>
<p>また、「信濃の国」は北陸新幹線長野駅の発車メロディーにもなっているので、機会があれば聴いてみてください。</p>
<h2>長野県とのギャップ</h2>
<p>東京に出たことで、長野県とのギャップを感じる毎日です。</p>
<p>いろいろありますが大きく分けると下の4つかな？って感じです。</p>
<p>気候、生き物、景色、移動手段</p>
<p>カテゴリの中身は以下の通りです。振り返ってみたところ数が多いので、ここであげるものは絞ります。</p>
<p>・気候：桜の開花時期や冬の気温</p>
<p>・生き物：野良猫の数、玄関の前にカエルがいるかいないか、人の多さ</p>
<p>・景色：日陰の多さ、山の有無、地形</p>
<p>・移動手段：電車やバスの本数、ガソリン代</p>
<h2>最後に</h2>
<p>フレクシェに入社してから、何もかもが変わったように感じています。</p>
<p>ただ、これから先どんなことが起きても、初心を忘れずに鍛錬し</p>
<p>皆様に価値を届けてまいりますので、何卒よろしくお願いいたします。</p>]]>
        
    </content>
</entry>

<entry>
    <title>フレクシェ社のマル秘開発プロジェクト！？</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2025/05/post-20.html" />
    <id>tag:www.flexsche.com,2025:/blog//1.111</id>

    <published>2025-05-15T05:00:00Z</published>
    <updated>2025-05-15T05:12:12Z</updated>

    <summary>皆さまこんにちは。神田です。 皆さまの会社と同様、弊社でも業務効率化のため様々な...</summary>
    <author>
        <name>神田</name>
        
    </author>
    
        <category term="技術" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="社内の様子" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p>皆さまこんにちは。神田です。</p>
<p></p>
<p>皆さまの会社と同様、弊社でも業務効率化のため様々なソフトウェアを利用していますがソフトを操作している中で、「このソフト、融通が効かないなぁ」なんて思ったこと、きっとありますよね？</p>
<p></p>
<p>私たちにもそんな思いをしたことがもちろんあるわけですが、そこは柔軟性を売りにしているソフトウェアのメーカー、「ないならば作ってしまえ」がフレクシェスタイル！</p>
<p>効率よく業務を行うため、社内利用するソフトウェア開発にも積極的です。</p>
<p></p>
<p>以前樋口からは<a href="https://www.flexsche.com/blog/2024/12/post-18.html">席替えアプリ</a>を紹介いたしましたが、私からは「CHANCOS（チャンコス）」を紹介させてください。</p>
<p></p>
<h3>CHANCOSとは？</h3>
<p></p>
<p>CHANCOSは、ステークホルダーの皆さまとの機会（CHANce）を逃さないための、中核オペレーション（Core Operating）支援機能群(Suite)です。</p>
<p>それぞれの英単語の一部を抜き出して、CHANCOSと名付けたわけです。</p>
<p></p>
<p>余談ですがCHANCOSメインユーザーの一人である私の体重は100kg目前。折角なので（？）「 「ちゃんこ」 を由来ということにしてほしい」と社内にお願いしてみましたが、しっかり却下されてしまいた。残念・・・</p>
<p></p>
<p>2025年5月時点、CHANCOSはお客様の情報管理機能や営業事務業務の自動化機能を備えています。</p>
<p>お客様とのコミュニケーションの円滑化、事務書類作成時間30%削減（神田個人の感想です）といったことを実現しているんです！</p>
<p>例えばお客様に架電する際に、↓の画像右側の子機を過去は使っていましたが、指が太くて番号を押し間違えるなんてこともありました・・・</p>
<p>CHANCOSならヘッドセットと組み合わせてワンクリックでスムーズに架電できます！</p>
<p><img alt="チャンコス画像.png" src="https://www.flexsche.com/blog/uploads/1a0dd995425519dc45573c9e41bc4f388be8556e.png" width="566" height="453" class="mt-image-none" /></p>
<p>社内開発チームは、私をはじめとしたCHANCOSユーザーの細かい要望にもスピーディに対応してくれており、更に対応業務範囲も日々拡大しております。</p>
<p>ステークホルダーの皆さまにさらに貢献するべくFLEXSCHEはもちろん、CHANCOSの開発も続けて参ります。</p>
<p></p>
<h3>終わりに</h3>
<p></p>
<p></p>
<p>CHANCOSの1ユーザーとして、痒いところに手が届く柔軟性は日々の業務遂行において大事なポイントなのだと実感しております。</p>
<p>因みに我々が開発しているFLEXSCHEも柔軟性をキーワードの一つにしております。</p>
<p>計画業務を行う中で、「ここがもう少しこうだったら・・・」なんて思ったことのある方、是非弊社にお問合せください！</p>]]>
        
    </content>
</entry>

<entry>
    <title>Over40会</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2025/04/over40.html" />
    <id>tag:www.flexsche.com,2025:/blog//1.110</id>

    <published>2025-04-28T08:00:00Z</published>
    <updated>2025-05-07T09:28:37Z</updated>

    <summary>ある水曜日の夜、ベテラン社員たちがテンション高めに退社していきました。そう、この...</summary>
    <author>
        <name>安広 壮志</name>
        
    </author>
    
        <category term="社内の様子" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p>ある水曜日の夜、ベテラン社員たちがテンション高めに退社していきました。<br />そう、この日は「Over40会」の記念すべき第一回目。</p>
<p>こんにちは、フレクシェの安広です。<br />先日、フレクシェでは「Over40会」と称して、40歳超えの社員限定でちょっと贅沢なディナーに出かけてきました。(費用は会社から出してもらいました！)<br />社員数が増え、若手メンバーも多くなったことで、ベテランたちは若さの波に押し流されつつあるこの頃。。</p>
<p>霜降り肉とか受け付けなくなってきた人も少なくない、そんなベテランたちが選んだお店はこちら。<br /><a href="https://www.flexsche.com/blog/uploads/20250402_185121.jpg"><img alt="20250402_185121.jpg" src="https://www.flexsche.com/blog/assets_c/2025/04/20250402_185121-thumb-700xauto-1495.jpg" width="700" height="525" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a><br />とーれとれぴーちぴち蟹料～理～♪（知ってる人はこっち側です）</p>
<p><a href="https://www.flexsche.com/blog/uploads/foods.png"><img alt="foods.png" src="https://www.flexsche.com/blog/assets_c/2025/04/foods-thumb-871x608-1497.png" width="871" height="608" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a>仕事の話はほどほどに、それぞれの不健康自慢や老後の不安など、リラックスした雰囲気の中で会話が弾みました。<br />おいしい食事やお酒を楽しみながら、普段とは少し違った環境で語り合うことで、ベテラン同士の結束も一層深まったように感じます。</p>
<p>ベテラン一同、これからのフレクシェを下支えていきますので、どうぞよろしくお願いいたします。</p>
<p><a href="https://www.flexsche.com/blog/uploads/20250402_215100.jpg"><img alt="20250402_215100.jpg" src="https://www.flexsche.com/blog/assets_c/2025/04/20250402_215100-thumb-600xauto-1499.jpg" width="600" height="450" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></a></p>]]>
        
    </content>
</entry>

<entry>
    <title>Under40会</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2025/04/Under40.html" />
    <id>tag:www.flexsche.com,2025:/blog//1.109</id>

    <published>2025-04-25T04:00:00Z</published>
    <updated>2025-04-25T04:06:47Z</updated>

    <summary>ある月曜日の夜、若手社員たちがいつもより足取り軽く退社していきました。そう、この...</summary>
    <author>
        <name>永根</name>
        
    </author>
    
        <category term="社内の様子" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p>ある月曜日の夜、若手社員たちがいつもより足取り軽く退社していきました。<br />そう、この日は「Under40会」の記念すべき第一回目。</p>
<p></p>
<p></p>
<p>こんにちは、フレクシェの永根です。<br />先日、フレクシェでは「Under40会」と称して、40歳未満の社員限定でちょっと贅沢なディナーに出かけてきました。(費用は会社に出してもらいました！)<br />社員数が増え、若手メンバーも多くなったことで、こうした集まりが実現できるようになったのは嬉しい限りです。</p>
<p></p>
<p></p>
<p>今回は会社近くのブルワリーレストランへ。<br />クラフトビールやモダンアメリカン料理で有名なお店です。</p>
<p><img alt="Dinner3_R.jpg" src="https://www.flexsche.com/blog/uploads/71ed86eba23a1a1025ac95ae9ac9d7750dc1d700.jpg" width="300" height="169" class="mt-image-none" />　<img alt="Dinner2_R.jpg" src="https://www.flexsche.com/blog/uploads/232a4ad7832f0e75805f48662244afd13a399ccd.jpg" width="300" height="169" class="mt-image-none" /></p>
<p>仕事の話はほどほどに、それぞれの趣味や最近の出来事など、リラックスした雰囲気の中で会話が弾みました。<br />おいしい食事やお酒を楽しみながら、普段とは少し違った環境で語り合うことで、若手同士の結束も一層深まったように感じます。</p>
<p></p>
<p></p>
<p>若手一同、これからのフレクシェを支え盛り上げていきますので、どうぞよろしくお願いいたします。</p>
<div style="text-align: center;"><img alt="under40_trimming_R.jpg" src="https://www.flexsche.com/blog/uploads/under40_trimming_R.jpg" width="600" height="461" class="mt-image-none" /></div>]]>
        
    </content>
</entry>

<entry>
    <title>作業場オプション勉強会を開催しました！</title>
    <link rel="alternate" type="text/html" href="https://www.flexsche.com/blog/2025/03/cs.html" />
    <id>tag:www.flexsche.com,2025:/blog//1.106</id>

    <published>2025-03-24T04:00:00Z</published>
    <updated>2025-03-24T04:35:30Z</updated>

    <summary>こんにちは。フレクシェの安部です。 3月に入り、寒さも日に日に落ち着き始めて次第...</summary>
    <author>
        <name>アベ</name>
        
    </author>
    
        <category term="社外イベント" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="製品・サービス" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="ja" xml:base="https://www.flexsche.com/blog/">
        <![CDATA[<p>こんにちは。フレクシェの安部です。</p>
<p>3月に入り、寒さも日に日に落ち着き始めて次第に暖かくなってきました。</p>
<p>私は花粉症なので、毎年目と鼻で春の訪れを感じています。。。</p>
<p></p>
<p>さて、去る3月14日（金）に私の所属するCS（カスタマーサクセス）部主催で<br />「作業場計画オプション勉強会」を開催しました！</p>
<p></p>
<p>フレクシェでは製品の使い方や機能についての理解をより深めていただくために<br />定期的にユーザー様・パートナー様に向けて勉強会を開催しています。</p>
<p></p>
<p>今回の勉強会のテーマとして取り上げた作業場計画オプションについて簡単にご紹介します。</p>
<p></p>
<h3>作業場計画オプションについて</h3>
<p></p>
<p><img alt="作業場勉強会1.png" src="https://www.flexsche.com/blog/uploads/13f3c32ccd112d908989109c51cd73d16346f861.png" width="349" height="196" class="mt-image-none" /><img alt="作業場計画の必要性.png" src="https://www.flexsche.com/blog/uploads/a4ef8061e664b0ec5938442b6865759bcf2264f1.png" width="360" height="202" class="mt-image-none" /></p>
<p>例えば造船業などでは製造物が大型のため、工場などの作業場所を効率よく使うためには<br />時間だけではなく各作業の配置まで含めた計画が必要です。</p>
<p>作業場計画オプションはこういった製造物の配置まで考慮した計画を立てられる<br />FLEXSCHEの特徴的な機能です！</p>
<p>（<a href="https://www.flexsche.com/product/option/workshop.html">こちら</a>の製品ページでも詳しくご紹介しておりますのでご興味ありましたらご覧ください。）</p>
<p></p>
<p></p>
<h3>当日の様子</h3>
<p>当日は安広講師の下、参加者の皆さまにはサンプルプロジェクトを用いて<br />実際に手元で操作を行いながら作業場オプションについて学習を進めていただきました。</p>
<p>（社内から私と永根も参加しました。知識としては持っていましたが、<br />まだまだ経験が浅いのでこの勉強会を通してより理解が深まりました！）</p>
<p><img alt="当日の様子(2).jpg" src="https://www.flexsche.com/blog/uploads/58cbbb262388c9fe81a5c6841de973b49cad2906.jpg" width="350" height="262" class="mt-image-none" /><img alt="当日の様子(5).jpg" src="https://www.flexsche.com/blog/uploads/afbb2c07e413d846a41f738677252bb2e9641486.jpg" width="349" height="262" class="mt-image-none" /></p>
<p></p>
<p></p>
<p>参加者の方から「製造物の配置についてはどのように判断しているのか？」という質問が飛び出し<br />全体で議論を交わす場面もありました。</p>
<p></p>
<p><img alt="当日の様子(1).jpg" src="https://www.flexsche.com/blog/uploads/2515f76967fe1a74cadf7e16f8962b454e38836f.jpg" width="500" height="376" class="mt-image-none" /></p>
<p></p>
<h3>今回の勉強会を終えて・・・</h3>
<p>勉強会終了後に参加者に今回の勉強会についての感想をご記入いただいたアンケートでは<br />「参加してよかった」「機能について学べるいい機会だった」<br />とのお声をいただきました。<br />（私もCSチームとしてこの日の準備を進めていたのでご好評いただき一安心しました・・・）</p>
<p>参加者の皆様にとって有意義な時間となっていましたら幸いです。</p>
<p></p>
<p>フレクシェでは今後も定期的に様々なテーマを取り扱った勉強会を予定しています。</p>
<p>興味のあるテーマや、深く学びたい機能についての勉強会が開催される際にはぜひご参加ください！</p>]]>
        
    </content>
</entry>

</feed>
