- Steps
7. 初回ログイン時、パスワード変更画面へリダイレクト
-Home画面のロード時にパスワード変更画面へリダイレクトさせる
-初回ログインかどうかは、PWD_EXPIREで判定
#HOME画面にProcessを追加
#Source :OWA_UTILのリダイレクトを使うThis file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersDECLARE l_flag number := 0; BEGIN SELECT PWD_EXPIRE into l_flag from USERMASTER WHERE upper(USERNAME) = upper(:APP_USER); IF l_flag = 1 THEN htp.init; -- OWA_UTIL呼ぶには必要らしい owa_util.redirect_url('f?p=&APP_ID.:4:&APP_SESSION.'); -- &APP_ID.:<page no>:&APP_SESSION. apex_application.stop_apex_engine; ELSE NULL; END IF; END;
Oracle Application Express Notes | Apps development Notes | Google Cloud Platform | Python | apps test | Cool Beans | English | Books
2016/05/10
7.初回ログイン時、パスワード変更画面へリダイレクト :APEX ID/PASSWORD認証機能 - カスタム編 -
UPSERT のサンプル - データがあればUPDATE、なければINSERT
- Goal
データがあればUPDATE、なければINSERTする。
APEXのダイナミックアクションでの利用を想定しており、ボタンをクリックした際にプロシージャで呼び出して、テーブルのUPSERTをする。 - How
Merge文を使う
COLUMN1-4がキーで、FlagをUPSERTする
- SourceThis file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
PROCEDURE UPSERT_TABLE(C_1 in VARCHAR2, C_2 in VARCHAR2, C_3 in VARCHAR2, C_4 in VARCHAR2) as BEGIN MERGE INTO <TARGET TABLE> A USING DUAL --- プロシージャで1件ずつ追加/上書するなら、DUALで可能 ON (<COLUMN_1> = C_1 and <COLUMN_2> = C_2 and <COLUMN_3> = C_3 and <COLUMN_4> = C_4) WHEN matched then update set <FLAG> = case <FLAG> when 1 then 0 when 0 then 1 END WHEN not matched then insert(<COLUMN_1>,<COLUMN_2>,<COLUMN_3>,<COLUMN_4>,<FLAG>) values(C_1,C_2,C-3,C_4,1); end;
2016/05/06
6.パスワード変更画面の作成 その3 :APEX ID/PASSWORD認証機能 - カスタム編 -
- Steps
3.ボタン押下時のプロセスの追加
#ボタンには、”ページの送信”の設定のみ
#データベースアクションはなし
#ページ送信後のプロセスで、FUNCTION CHGPWD を呼び出す
(3.PASSWORDを変更するFUNCTION で作成)
前年同月比較、前月比較 - 売上日報 SQL
- Goal
セールス別に、当月の売上、前年同月、前月を横並びで表示する。レポートのタイミングはオンデマンドを想定しているので、売上明細からSQLで取り出しを行う。 - How
1. 月別グルーピング用のフラグを、明細に追加
2. DECODE文で、必要な値だけサマリー(条件付きサマリー)
3. GROUP BY ROLLUP で、合計行 を追加
- SourceThis file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
-- SALES別売上レポートサンプル SELECT CASE WHEN GROUPING(X.SALESNAME)=1 then '[Total]' ELSE X.SALESNAME END SALESNAME -- [Total] を集計行には表示する , SUM(DECODE(X.MFLAG,0,X.AMT,0)) TM --当月 , SUM(DECODE(X.MFLAG,-1,X.AMT,0)) MOM --先月 , SUM(DECODE(X.MFLAG,-2,X.AMT,0)) L2M --先先月 , SUM(DECODE(X.MFLAG,-13,X.AMT,0)) YOY --前年同月 FROM (--- 以下、売上明細の整形, VIEWに切り出すか、MVIEWでどっかにおくべき?? select A.<GL_DATE> GL_DATE , A.<SALES_NAME> SALESNAME , A.<AMOUNT> AMT -- 月の集計フラグを追加 , case when to_char(A.<GL_DATE>,'YYYYMM')=to_char(sysdate),'YYYYMM') --当月 then 0 when to_char(A.<GL_DATE>,'YYYYMM')=to_char(add_months(sysdate,-1),'YYYYMM') --先月 then -1 when to_char(A.<GL_DATE>,'YYYYMM') = to_char(add_months(sysdate,-2),'YYYYMM') --先々月 then -2 when to_char(A.<GL_DATE>,'YYYYMM') = to_char(add_months(sysdate,-13),'YYYYMM') --前年同月 then -13 ELSE 1 END MFLAG FROM <SALES_LINE> A WHERE A.<GL_DATE> >= to_date('01/'||to_char(add_months(sysdate,-13),'MM/YYYY'), 'DD/MM/YYYY') ) X GROUP BY ROLLUP ( A.<SALES_NAME> ) -- ROLLUPで合計行を追加 ORDER BY A.<SALES_NAME> ; This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersSALESNAME TM MOM L2M YOY -------------------------- ---------- ---------- ---------- ---------- SALES1 1021 518 352 363 SALES2 58 65 54 46 SALES3 155 126 123 94 SALES4 70 47 57 67 [Total] 1304 756 586 570
2016/05/04
6.パスワード変更画面の作成 その2 :APEX ID/PASSWORD認証機能 - カスタム編 -
- Steps
2.パスワードの検証プロセスの追加
#USER_IDが、NULLではない
#新旧パスワードが一緒ではない
#新パスワードに空白がない
#パスワードは8文字以上 :SQL式
#大文字を1文字以上含む :SQL式
#小文字を1文字以上含む :SQL式
#新パスワードと確認用パスワードが一致している
#USERNAMEが、ログインUSERと一致している :SQL式
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters--8文字以上 length(:P4_NEW_PWD) > 7 --大文字を1文字以上含む nvl(length(:P4_NEW_PWD)-length(regexp_replace(:P4_NEW_PWD,'[[:upper:]]')),1)>0 --小文字を1文字以上含む nvl(length(:P4_NEW_PWD)-length(regexp_replace(:P4_NEW_PWD,'[[:lower:]]')),1)>0 --USERNAMEとログインしているUSERの名前のチェック UPPER(:P4_USERNAME)=UPPER(:APP_USER)
3.ボタン押下時のプロセスの追加 へ続く
2016/05/03
FinTech革命
FINTECHの文字をよく見るので買ってみた。
SquareのIpadをクルッと回してサイン求められるレジ端末を確かに最近良くみるとは思っていた。クレジットの手数料の値下がりで、現実的に回収業務の効率化、キャシュフローの良化とのトレードオフでの検討をしたい。直販化がさらに進むのか?
FinTech革命~テクノロジーが溶かす金融の常識~(日経BP Next ICT選書)

SquareのIpadをクルッと回してサイン求められるレジ端末を確かに最近良くみるとは思っていた。クレジットの手数料の値下がりで、現実的に回収業務の効率化、キャシュフローの良化とのトレードオフでの検討をしたい。直販化がさらに進むのか?
FinTech革命~テクノロジーが溶かす金融の常識~(日経BP Next ICT選書)
登録:
投稿 (Atom)