Wednesday, April 27, 2016

OBI - Installing Patch 12.2.1.0.160419 Windows

I downloaded the patch and mostly followed the readme (here).

There is slight inconsistency between the Conflict Resolution part (section 2.2) and (section 5). Nothing grand, but my version is slightly different.

My OBI installation is at D:\MWHOME12 where the MWHOME12 is already the Oracle_Home (The usual installation might be Oracle/Middleware/Oracle_Home).

Step1: Stop OBI:

At <ORACLE_HOME>\user_projects\domains\<domain_name>\bitools\bin run stop.cmd
in my case D:\MWHOME12\user_projects\domains\bi\bitools\bin\  &  stop.cmd

Step2: Uznip the patch file under Oracle_Home:

In my case folder 22734181 created in D:\MWHOME12

Step3: Set environment variables at command prompt:

Open Command prompt 

cd Oracle\Middleware\Oracle_Home
set ORACLE_HOME=C:\Oracle\Middleware\Oracle_Home
set PATH=%ORACLE_HOME%\bin;%PATH%
set JAVA_HOME=%ORACLE_HOME%\oracle_common\jdk  
set PATH=%JAVA_HOME%\bin;%PATH%
set PATH=%ORACLE_HOME%\OPatch;%PATH%

Please note the JAVA_HOME line is not like the readme

In my case:
 
cd D:\MWHOME12
set ORACLE_HOME=D:\MWHOME12
set PATH=%ORACLE_HOME%\bin;%PATH%
set JAVA_HOME=%ORACLE_HOME%\oracle_common\jdk  
set PATH=%JAVA_HOME%\bin;%PATH%
set PATH=%ORACLE_HOME%\OPatch;%PATH%


On UNIX: If you are using a command shell derived from the C shell, then set the environment variables by entering the following:
setenv ORACLE_HOME $PWD
setenv PATH $ORACLE_HOME/bin:$PATH
setenv JAVA_HOME $ORACLE_HOME/oracle_common/jdk
setenv PATH $JAVA_HOME/bin:$PATH
setenv PATH $ORACLE_HOME/OPatch:$PATH


 Step4: Run Conflict resolution

opatch prereq CheckConflictAgainstOHWithDetail -ph .\22734181  (changed readme)

Assuming it passed:
 

Step5: Install patch

cd 22734181
opatch apply 

answered both questions yes (after you stopped the server)

Step6: Start the server:

At <ORACLE_HOME>\user_projects\domains\<domain_name>\bitools\bin run start.cmd
in my case D:\MWHOME12\user_projects\domains\bi\bitools\bin\  &  start.cmd


Few things to note:

1. The patch does not cover the admin tool. All the known problems there, remain (see section 10 in the readme).
2.  The version number of OBI does not seem to change after the patch.


Saturday, April 23, 2016

OBI 11.1.1.9 BI BUNDLE SUITE 11.1.1.9.160419 is available

This OBI 11.1.1.9 bundle patch is available, sine 19-APR-2016 from Oracle support as patch 22951634.
It is available for:
  • Linux x86-64
  • Linux x86
  • Windows (64 bit)
  • HP-UX Itanium
  •  IBM AIX on POWER Systems (64 bit)
  • Oracle Solaris on SPARC (64 bit)
  • Oracle Solaris on x86-64 (64 bit)
The readme is here.
The Oracle BI EE Suite Bundle Patch 11.1.1.9.160419 under the top-level patch 22951634 consists of the following component patches:
Patch Abstract
22859999 Oracle BI Mobile App Designer (BIMAD)
22977810 Oracle Business Intelligence Server (BISERVER)
22967335 Oracle Business Intelligence Presentation Services (BIPS)
22603478 Oracle Enterprise Performance Management Components Installed from Oracle BI Installer 11.1.1.9.0 (BIFNDNEPM)
22974747 Oracle Business Intelligence Publisher (BIP)
22951536 Oracle Business Intelligence Platform Client Installers and MapViewer
21350584 Oracle Business Intelligence ADF Components (BIADFCOMPS)
21517672 Oracle Business Intelligence Third Party
 The patch includes the following bug fixes:

Oracle Business Intelligence Presentation Services (BIPS)


  • 22607439 - QA: WHITE TEXT DOESN'T APPEAR FOR CUSTOM CSS CLASS:SECTIONBUTTON WITHIN DB PAGE
  • 21094127 - ADD FUSE CUSTOM.CSS APP STYLES TO ALTA
  • 21257224 - QA:ACC:DASHBOARD NAMES UNDER DASHBOARD MENU DROP-DOWN ARE NOT READ BY JAWS
  • 20095755 - ADD LINK TO MAD ADMINISTRATION PAGE FROM BIEE ADMINISTRATION PAGE
  • 21044888 - INVALID XML WHEN PERFORM REPORT ACTIONS WITH DOUBLE COLUMNS IN PROMPT
  • 21143117 - SELECT THE BURSTING FILE WHILE SCHEDULING FR BATCH
  • 20181793 - EXPORT TO PDF ERROR: ERROR 500--INTERNAL SERVER ERROR
  • 22343072 - DEFAULT SKIP FOLDERS ARE NOT GETTING SKIPPED IF USER HAS GIVEN SKIP FOLDER LIST
  • 21368552 - ADD TO FAVORITE IS INCONSISTENT IN BI AND FUSE
  • 20447904 - GRIDLINE HORIZONTAL MAJOR INVISIBLE DOESN'T WORK
  • 21035477 - USERNAME CHANGE: EVEN AFTER SUCCESSFUL LOGIN SOAP GETACCOUNTS RETURNS OLD USER

Oracle BI Mobile App Designer (BIMAD)


  • 22134816 - MOBILE APP DESIGNER NOT WORKING IN REL10
  • 21876950 - DUPLICATE WEB-INF/LIB/GSON-1.3.JAR CAUSING THE PATCH TO BREAK
  • 22299818 - QA:APPEARANCE OF BLUE BAND IN NEW MOBILE APP PAGE
  • 20776281 - NLS:THOUSAND SEPERATOR/DECIMAL POINT NOT HONOR USER PREFERENCE IN NEW PLUGINS

Oracle Business Intelligence Server (BISERVER)

  • 22346424 - TRACKING BUG TO CODE INCLUDE BLR TRANSACTION (BLR BUG 21843907 ) IN 9.X CODE
  • 22221772 - NEW APPLICATION ROLE CREATED IN EM DOES NOT APPEAR IN THE RPD
  • 20475096 - VALIDATERPD CMD LINE UTILITY DOES NOT RETURN CORRECT BOOLEAN RESULT ON ERRORS
  • 22450106 - DASHBOARD PROMPT "LIMIT BY" GIVES ODBC INTERNAL ERROR
  • 22506482 - NEED CAPABILITY TO FORCE RE IMPORT OF COMPLETE FLEXFIELDS AND CUBES BY USER
  • 22463826 - BI CSM FAILS WITH MESSAGE: BISERVEREXTENDER FAILED WITH EXIT VALUE: 139
  • 22522055 - CONSISTENCY CHECK ERRORS/WARNINGS REPORTED WITH INCONSISTENT FORMAT
  • 21825428 - BISERVER_11.1.1.11.0BICS:CRASH IN NQSSERVER
  • 21752193 - BI EXTENDER NEED TO CHECK FOR PRE REQ VALIDATION BEFORE EXTENSION
  • 20351929 - PSR:PERF:BI:NQSMODIFYMETADATA FAILED DUE TO CONSISTENCY CHECK ERRORS
  • 22252770 - COREAPPLICATION_OBIS1~ORACLEBISERVERCOMPONENT - FREQUENT RESTARTS
  • 22362907 - ESSBASE RNR ORDER NEED TO BE CHANGED AND CUST DISPNAME NEED TO BE DISABLED
  • 22228482 - CONSISTENCY CHECK NOT REPORTING OR FIXING ERROR CORRECTLY
  • 20657633 - IMPROVE BI EXTENSION LOGGING
  • 21364790 - BISERVEREXTENDER SHOULD PROVIDE NEW COMMAND OPTION TO CHECK SIMULATION FILE
  • 21227785 - AFTER UPGRADE FROM .7.15 TO .9 NQSERVER IS CRASHING RUNNING QUERY
  • 22529432 - BI SERVER MUST RETRIEVE USERNAME PASSWORD FROM CREDSTORE FOR RPD CONN POOL
  • 22551160 - CANNOT PUBLISH CSM DUE TO ERROR IN BI
  • 22664568 - BI EXTENDER RNR SUPPORT FOR NEW GRC PILLAR UNDER FSCM AM
  • 22343542 - BISERVER_12.2.1.0.0:CRASH IN NQSSERVER

Oracle Business Intelligence Publisher (BIP)


  • 18546018 - NESTED TABLES AND CELL ALIGNMENT CAUSES BLANK PAGE AT THE BEGINNING OF A REPORT
  • 20723383 - BIP CSV OUTPUT INCORRECT DATA WHEN CHILD DATA GROUP IS EMPTY
  • 20854716 - NEED WS API FOR FA USER TO GET JOB INSTANCE IDS FROM SUBMITTED JOB ID
  • 21083623 - A NON-STANDARD SQL QUERY DATA SET GETS 'FAILED TO LOAD XML' FROM ORACLE 11.2.0.4
  • 21314159 - CANCEL DATAPROCESSING OPERATION IS NOT WORKING AS EXPECTED
  • 21752039 - OOM IN SMTP DELIVERY OF LARGE REPORT
  • 21819827 - Fix for Bug 21819827
  • 22174702 - PRODUCTION RESOURCE GROUP| GSI | 3-11677977241 | CANNOT PRINT LARGE PO'S | EBDW
  • 22462971- BIP STUCK THREADS: HOLDING LOCK: ORACLE.XDO.SERVLET.SECURITY.DIRECTORYUSER@XXX
  • 22611371 - Fix for Bug 22611371
  • 22642573 - JAVA.LANG.NUMBERFORMATEXCEPTION THROWN WHEN USING SSH-2.0-WEONLYDO 2.4.3 SERVER
  • 20282315 - ER: SVG SUPPORT IN HTML OUTPUT (SERVER SIDE)
  • 20713159 - BI PUBLISHER REPORT EXPORT TO EXCEL SHOWS NUMBER FIELDS AS TEXT
  • 20984869 - THUMBNAIL SYNCHRONIZATION ISSUE
  • 21417594 - Fix for Bug 21417594
  • 21466200 - THUMBNAIL FOR XPT WITH CROSSTAB CAUSES OOM
  • 22258579 - FORMATTED PAYMENTS ARE NOT PRINTED AUTOMATICALLY
  • 22329015 - QA: 12C:BI_SERVER1 RESTARTS IF PROVIDE FTP PORT,USE SECURE FTP OPTION
  • 22603229 - Fix for Bug 22603229
  • 22614004 - UNABLE TO DISPLAY IMAGES IN BI PUBLISHER FROM IMAGE URL
  • 14681892 - NO OPTION TO STOP/CANCEL THE RUNNING REPORT IN BI PUBLISHER
  • 19519574 - ER: REPORT TIME OUT FEATURE (SERVER SIDE)
  • 20936693 - CONSOLIDATED ISSUES DUE TO SLOPPY RTF TEMPLATES
  • 21307401 - ER: EXCEL(XLSX) OUTPUT SCALABLE MODE SUPPORT
  • 21489901 - REPUBLISHING SUBJOBS TO VIEWER INTERMITTENTLY SHOWS ALL DATA
  • 21544290 - PSR:PERF:BIP:CANCEL REPORT FEATURE NOT WORKING WITH REPORT HAVING XPT TEMPLATE
  • 21662534 - ADD FO PROCESSOR LOGS TO SCHEDULE JOB DIAGNOSTICS LOGS
  • 21807747 - BROWSER BACK BUTTON CAUSING A NEVER ENDING LOOP FOR REPORTVIEWER
  • 21821719 - REMOVE STAGE COUNTER ON REPORT VIEWER
  • 21857415 - NLS: MENUS ON THE HOME PAGE ARE NOT ACCESSIBLE WHEN UI LANGUAGE IS SET AS FRENCH
  • 21874030 - "AUTORUN" NOT DEFINED WHILE RUNNING REPORT WITH MULTIPLE LAYOUTS FROM /ANALYTICS
  • 21911433 - CANCELLING THE REPORT RESULTS IN NPE WHEN REPORT EXECUTION ID IS NULL
  • 22244944 - MEMORY GUARD EXCEPTIONS FROM FO PROCESSOR ARE NOT SHOWN ON THE REPORT VIEWER
  • 22380123 - R12MAT2CDRM: PACKAGE VARIABLE VALUE NOT ACCESSIBLE IN DATAMODEL QUERY
  • 21681462 - HCEZDEV2-TEST: NOT ABLE TO MOVE THE EMPTY FILE ON SFTP THROUGH BIP

Oracle Enterprise Performance Management Components Installed from Oracle BI Installer (BIFNDNEPM)

  • 20453309 - AFTER 11.1.2.3.505 APPLIED ESSSVR ON SOLARIS 10 TAKES MUCH MEMORY
  • 21097260 - TARGET APP CRASH WHEN RETRIEVED IS DONE THAT INCLUDES ATTRIBUTES
  • 21503354 - FIX ROUNDING FOR OUT OF PLACE DATA WRITES
  • 21773910 - DIMENSION FAILED BUILD - OTHER ACTIVE USERS ON DATABASE [DB]
  • 21976795 - ERROR MESSAGE WHEN ESSBASE IS SERVER IS DOWN IS NOT APPROPRIATE FOR END USER
  • 21980807 - ESSBASE DATA CONTROL ERROR MESSAGE FOR CONNECTION TIME OUT
  • 22266039 - FA SAAS REL10::EBTW-TEST:: MEMORY ALLOCATION FAILURE DETECTED
  • 21627660 - ESSBASE SERVER HAS CRASHED 2 TIMES IN THE LAST 24 HOURSSev 1 24X7 SR
  • 20929809 - DIFFERENT VERSION OF APS IS SHOWN IN APSSERVER.LOG, WORKSPACE & EAS CONSOLE
  • 22012504 - SMART VIEW RETRIEVAL WITH ATTRIBUTE DIMENSION PRODUCING INCONSISTENT RESULTS
  • 22082207 - ESSBASE APPLICATION CRASHES MULTIPLE TIMES LEADING TO DATA LOSS TWICE IN WEEK
  • 21444847 - FA REL9 : APPLYING ESSBASE PATCHES CAUSING OVERRIDING APS PROPERTIES FILE
  • 22177259 - ESSBASE JAVA API ERROR MESSAGE FOR CONNECTION TIME OUT
  • 22088070 - ESSBASE SERVICE RESTARTS WHEN USERS RUN OBIEE REPORTS AGAINST APPS
  • 21364097 - ASO APPLICATION CRASHES DURING DATA SUBMIT
  • 19610523 - INCORRECT ESSBASE DATA IS PULLED VIA MDX QUERY WHICH WAS GENERATED BY OBIEE
  • 21847732 - ESSBASE STUCK WITH ERROR(1013194)
  • 20890248 - ESSBASE BSO CALC TAKING MORE TIME AFTER FORCE RESTRUCTURE
  • 21660226 - SETTING UPDATECALC TRUE HAS NO EFFECT AFTER OUTLINE RESTRUCTURE ON EXALYTICS
  • 21791583 - ALLOCATIONS ENGINE DOES NOT WORK
  • 21821912 - PRINTING EMPTY CELLS INFORMATION DURING EXPORT
  • 22331077 - DEFECTS FIXED: ESB, APS, EAS AND STUDIO 11.1.2.4.004, 11.1.2.4.005, 11.1.2.4.006
  • 21960528 - NLS:POLISH CHARACTERS CANNOT BE LOADED TO NATIVE ESSBASE DATABASE
  • 21050678 - EDIT ASO OUTLINE WITH STAGGERED MEMBER 46 LEVEL CRASHES EAS SERVER
  • 21551279 - ABNORMAL ASO SHUTDOWN WHILE RUNNING MDX REPORT
  • 20924044 - ESSBASE AGENT HANG ON APP DMTIP 11.1.2.3.506 SOFT KILL REQUIRED NO CORRUPTION
  • 14737518 - TIME BALANCE PROPERTY NOT GETTING CHANGED TO NONE
  • 22599304 - EPM MUST RETRIEVE USERNAME PASSWORD FROM CREDSTORE INSTEAD FROM EPM REGISTRY
  • 22672129 - CUSTOM DECIMAL SEPARATOR NOT APPEARING PROPRLY IN EXCEL
  • 22641830 - REPLACE NET CHARTS WITH JET CHART
  • 22529438 - EPM MUST RETRIEVE USERNAME PASSWORD FROM CREDSTORE INSTEAD OF USE REG.PROPERTIES
  • 22548144 - FINANCIAL REPORT EXPORT TO EXCEL SHOWING WRONG RESULTS - SHOWING MINUS SIGN
  • 22205620 - EPM REGISTRY DOES NOT SUPPORT USE OF TNS ALIASES
  • 22390227 - PERCENT FORMAT NOT CORRECTLY DISPLAYED IN EXPORTED EXCEL, PSU 005

OBI 12.2.1.0 - BUNDLE PATCH 12.2.1.0.160419 is available

The first OBI 12.2.1.0 bundle patch is available, sine 19-APR-2016 from Oracle support as patch 22734181.
It is available for:
  • Linux 86-64
  • Windows (64 bit)
  • HP-UX Itanium
  •  IBM AIX on POWER Systems (64 bit)
  • Oracle Solaris on SPARC (64 bit)
  • Oracle Solaris on x86-64 (64 bit)
The readme is here.

The patch includes the following bug fixes:
  •     22472457 - XUDML DIFF FAILS TO PRESERVE CHILD ORDER ON PARENT CHANGE
  •     22228482 - CONSISTENCY CHECK NOT REPORTING OR FIXING ERROR CORRECTLY
  •     21831881 - VALIDATERPD MODEL CHECK -L DOESNT CONNECT TO BI SERVER INSTANCE
  •     22756587 - REQUEST FOR MORE CHANGES WITH REGARD TO RPD FORWARD COMPATIBILITY
  •     21658348 - UNABLE TO FIND MAPPING.XML IN ALL UTIL LOGS IN ADMINTOOL CLIENT
  •     22228558 - ADMINTOOL CRASHED ON CONSISTENCY CHECK. BLOCK BI APPS DEVELOPMENT
  •     21529377 - MDS XML INVALIDDATATYPEVALUEEXCEPTION, MESSAGE:ID 'MERROR' IS NOT UNIQUE
  •     22221786 - ADMIN TOOL CLIENT SHOULD NOT READ SERVER RPD OF HIGHER VERSION (355/354)
  •     22264023 - EXTRACTPROJECTS CREATES CORRUPTED REPOSITORY IN 11.1.1.9.X VERSION
  •     22112221 - REPOSITORY SAVED ON 12.2.2 IS CORRUPTED WHEN USED IN BICS11
  •     22354384 - UPDATE THE ADMIN TOOL HELP JAR FILE FOR 12.2.1 PATCH
  •     22522055 - CONSISTENCY CHECK ERRORS/WARNINGS REPORTED WITH INCONSISTENT FORMAT
  •     21888385 - TOGGLE LAYER BRINGS BACK NAV PANEL EVEN IF IT'S DISABLED
  •     21972662 - FORMATS ARE LOST ON SPECIFIC MAPS WHEN DRILLING
  •     22248493 - ASENG: DRILL ON RM DASHBOARD AND RETURN BREAKS THE ORIGINAL DASH
  •     21528019 - 12C:BI: WRONG ERROR MESSAGE FOR PORT RANGE STARTING PORT
  •     21127173 - BI DEINSTALL THROWS EXCEPTIONS WHILE LAUNCHING DEINSTALLER IN COMMAND LINE
  •     21527677 - 12C:BI: INSTRUCTION FOR ENTERING THE DOMAIN NAME NEEDS TO BE CHANGED
  •     21419316 - QA:HGRID CAUSE&EFFECT AND STV WITH MANY COLS DON'T DISPLAY PROPERLY AS WATCHLIST
  •     21911881 - Fix for bug 21911881
  •     21766708 - Fix for bug 21766708
  •     21438772 - Fix for bug 21438772
  •     21766173 - Fix for bug 21766173
  •     21766306 - Fix for bug 21766306
  •     21849811 - PAYCHEX: NEED SUPPORT TO XSA CONFORMANCE TO SA LOOKUP COLUMNS
  •     22363364 - VA LINKS TO ANALYTICS REPORTS BROKEN, DUE SERVER FRONTEND SSLPORT 0 USED IN URLS
  •     22269572 - VA LINKS TO ANALYTICS REPORTS BROKEN, DUE INCORRECT PORT 7003 IN URLS
  •     21158035 - 12C VA MASHUP DATASET INSPECT DIALOG TO INCLUDE PERMISSIONS TAB
  •     22007039 - PSR:PERF:BI: LOCK CONTENTIONS ON SAW::THREADS::FASTREADERWRITERLOCK::ACQUIREWRI
  •     22067980 - PSR:PERF:BI REGRESSION FROM SECURITYIMPL::GETGROUPMEMBERSHIPS()
  •     21826815 - BIFNDN_12.2.1.0.0:CRASH IN TESTWEBCATALOGSI
  •     21982798 - STRESS: SAWSERVER CRASH OBSERVED DURING DASHBOARD TESTS
  •     22254120 - DASHBOARD.US.ORACLE.COM:1221 :MIGRATION: FAVORITES MENU IS EMPTY POST MIGRATION
  •     21953836 - 12C-BI-RC2: IPV6 SCENARIO IS FAILING
  •     22607439 - QA: WHITE TEXT DOES N'T APPEAR FOR CUSTOM CSS CLASS:SECTIONBUTTON WITHIN DB PAGE
  •     21094127 - ADD FUSE CUSTOM.CSS APP STYLES TO ALTA
  •     21766161 - Fix for bug 21766161
  •     21913802 - BI:BIP,ANALYTICS AND OTN HELP PAGES ARE POINTG TO 11G DOC

Saturday, April 9, 2016

BI Publisher for simple personal Email (Hebrew)

בימינו לקוחות מצפים ליחס אישי. בעיני לקוח מודרני פניה כללית ולא מותאמת אליו, היא רמז להתייחסות לא רצינית. באורקל קיים מזה זמן רב מוצר הנקרא BI Publisher. הוא מגיע כמוצר עצמאי או כחלק מחבילות OBIEE או OBI SE1 ובנוי בדיוק בשביל הדברים הללו. כשנושא פניה אישית נדון במפגש באורקל, חשבנו שכדאי להזכיר את זה לכולם ולהמנע מאמרות בנושא סנדלרים יחפים.

כאן נתאר דוגמא פשוטה ומהירה לבניית דוור אישי באמצעות מייל לכמה אנשי אורקל.
ניתן לבצע את כל התהליך תוך פחות משעה.

הכלים המצויים בידי, מלבד פאבלישר, הם טבלה בבסיס הנתונים ובה שישה שדות (שם, מייל, שם פרטי בעברית, מגדר, חודש לידה והאם יש לי תמונה שלו/ה) ובנוסף בדיסק נמצאות תמונות של האנשים (או ליתר דיוק של אילו מהם שהעלו תמונה אישית למערכת העובדים הפנימית).

שלב 1 - הגדרת מקור לנתונים

עכשיו יוצרים בפאבלישר אובייקט הנקרא Data Model ובו בוחרים את הטבלה הנ"ל ומסמנים את כל העמודות שלה.
בלשונית הData בודקים שהנתונים בסדר ושומרים דוגמית לפיתוח מהיר בהמשך.

שלב 2 - כתיבת המכתב האישי

כדי שחלילה לא נעבוד קשה מדי, נשתמש בתוסף (Add-In) לWord הניתן להורדה והתקנה מהפאבלישר. לאחר שהוא מותקן מתחברים דרכו אל השרת:
בוחרים את הdata model שיצרנו בשלב הקודם ויוצרים דוח חדש (create Report ובוחרים שם ומיקום של הדוח החדש שישמש להפצת דואר). עכשיו ניתן לבחור כל אחד משדות המודל ולשלב במכתב.
מה אנו רוצים לקבל? משהו כזה:
מכתב פשוט בו נעשה שימוש בשם ועוד כמה פרטים, פניה נכונה לפי המיגדר, תמונה אישית (אם יש) או הערה על העדר התמונה ולוגו קטן של אורקל למטה.

מה נעשה? הרי לא נרצה להריץ מייל נפרד לכל אחד. פשוט מאד, נכין דוח אחד גדול ובו דף נפרד לכל אדם ואחר כך נשלח לכל אחד את החלק שלו. תהליך הנקרא Bursting.
לכן ניצור לולאה היוצרת דף נפרד לכל אדם (המיוצג על ידי שורה בטבלה שלי) ונכניס שם טקסט חופשי וכמה נוסחאות מותנות. נקנח בתמונה.

כדי ליצור את רכיב החזרה, נבחר בתפריט הפאבלישר Repeating Group ובחלון שנפתח הבחר את הערך היחיד שיש בFor Each, נפריד בין הדפים השונים על פי כתובת דואר ונתחיל עמוד חדש בסוף כל אחד:

מה שנקבל הוא קוד בדף הWord שכולל התחלה וסוף של הבלוק:

נפריד בניהם (באמצעות לחיצה על ENTER):
בין שני החלקים הללו נכתוב את המכתב האישי.

כדי להחליף את XXX בשם הפרטי נלחץ על Field בתפריט ונבחר את First Name

באותה צורה נחליף את YYY בשדה Month_OB.

עכשיו נרצה לעשות פניה מגדרית נכונה. אדגים את הבחירה בין את ואתה. למעשה אני רוצה להחליט אם להוסיף את ה"ה" עבור זכר או לא, עבור נקבה. על כן נכתוב "את" במסמך ונצמיד אליו את שדה המגדר:

הקשה כפולה על GENDER ומעבר ללשונית הAdvanced, מציגה את הנוסחא של השדה בפאבלשר

נמיר אותה בנוסחא:
 <?if@inlines: GENDER = ‘M’?> ה<? end if?>
(אם המגדר הוא 'M', כתוב 'ה'), החלק המעניין כאן הוא בתוספת inlines עם הקידומת '@'. זה פשוט אומר לפאבלישר לא להתחיל שורה חדשה אחרי הנוסחא.
למען הסדר הטוב, בעמודת  Properties, נשנה את הText to display ל'/ה' (זה רק נראה יותר טוב).

בצורה דומה בתעדיף/פי כתבנו:
<?if@inlines: GENDER = ‘M’?> ף<? end if?><?if@inlines: GENDER = ‘F’?> פי<? end if?>

בנוסף יש הודעה שונה לבעלי וחסרי תמונה. כאן נשתמש באפשרות "Conditional Region":
נסמן את הטקסט שנרצה להתנות. נבחר, במקרה שלנו, את השדה PICTURE_Y_N, ונבחר תנאי (שווה לN בדוגמא).

באופן אוטומטי, הטקסט יקבל הגדרות תנאי לפני ואחרי (C ו-EC בתמונה).


לבסוף הגענו להוספת תמונה. תמונה סטטית רגילה, פשוט מוסיפים בWord. אנחנו רצינו תמונה אישית.
מוסיפים תמונה כלשהי, שמגדירה גודל ברירת מחדל (התות במקרה שלנו), לוחצים קליק ימני ובוחרים ב: Format Picture:

כאן, בהתאם לגירסה של Word בוחרים Web או, במקרה שלי 'Alt Text':
כאן כותבים את כתובת התמונה האמיתית שתופיע. זה יכול להיות URL או הפניה קבועה... במקרה שלי יש תמונות במחיצת C:\people, כשלכל אחד קובץ בשמו עם הסיומת jpg. על כן אני משתמש בשדה Name ומשרשר את הערכים הקבועים (concat  היא פונקצית שירשור):
url:{concat('C:\people\',NAME,'.jpg')}

שימו לב, במידה ומפיצים את המייל כמסמך, למשל PDF, התמונה הדינמית הנ"ל מובנית במסמך והכל תקין. אבל אם מפיצים אותו כHTML, התמונה כאמור דינמית. על כן, חשוב שתהייה נגישה לקורא המכתב. שימוש בדיסק מקומי (כמו בדוגמא הנ"ל) או שרת פנימי לתמונות, שאליהן אין בהכרח לקורא המכתב גישה, לא יעבוד.

חלק נוסף לדוברי עברית: תחת Options/Preview, לבחור בעברית.

עכשיו נשמור את הקובץ בWORD (עם סיומת RTF) וניתן לצפות בדוח תחת תפריט Preview במגוון פורמטים:

כחלק מWord ניתן להוסיף עיצובים / Header / Footer...  כך נוסיף את הלוגו, למשל.

כשאנחנו מרוצים, נבחר בתפריט את Upload Template As וניתן לו שם.

עכשיו יש לנו דוח רב עמודים, במגוון פורמטים. בו עמוד אחד לכל אדם. איך נחלק אותו להפצה אוטומטית? באמצעות Bursting.

שלב 3 - Bursting.

בפאבלישר מנגנון Bursting מובנה. הרעיון הוא לכתוב שאלתת SQL נוספת, בה כל הגדרות הפלט והגדרה, על פי מה לחתוך להפצה את הדוח המקורי. למי שירצה להתעמק בנושא, כדאי להתעמק כאן. אני רק אתאר את המקרה המסויים שלנו.
בData Model שתואר בשלב 1, נוסיף בלוק Bursting:

נגדיר שהשאילתה פונה לאותה הטבלה (לא חובה, אפשר לעבוד עם טבלאות שונות) והגדרת הSplit והDeliver על פי עמודת הEMAIL.
נתאר שתי דוגמאות, אחת עם PDF המצורף למייל ואחת של HTML.

HTML :
זה הSQL אותו אסביר עבור כל שורה:
select "O_PEOPLE"."EMAIL" as "KEY",
     'Personal' as TEMPLATE,
     'he-IL' as LOCALE,
         'HTML' OUTPUT_FORMAT,
     'EMAIL' as DEL_CHANNEL,
     "O_PEOPLE"."EMAIL" as PARAMETER1,
     'Tovit_and_Boris@oracle.com' as PARAMETER3,
     concat('הודעה אישית ל',"O_PEOPLE"."FIRST_NAME") as PARAMETER4,
     'false' as PARAMETER6,
     'noreply@oracle.com' as PARAMETER7
 from    "SH"."O_PEOPLE" "O_PEOPLE"

KEY זאת הגדרה האומרת לפי איזה שדה נחתוך להפצה את הדוח (צריך להיות תואם את השדה המקביל בדוח).
TEMPLATE הוא שם החלק שהענקנו כשעשינו Upload Template As בשלב הקודם.
LOCALE הוא שפת הנתונים (לעברית he-IL)
OUTPUT_FORMAT במקרה שלנו HTML, כי רציתי לשלב אותו בדואר בצורה יפה.
DEL_CHANNEL הוא פורמט ההפצה, EMAIL במקרה שלנו (בנוסף יש FAX, FILE, FTP, PRINT, WEBDAV).

הפרמטרים רלוונטיים לפורמט ההפצה. עבור דואר:
PARAMETER1 הוא כתובת הנמען (To של הדואר)
PARAMETER2 (לא השתמשנו) - CC
PARAMETER3 כתובת השולח (שזייפנו בלי בושה)
PARAMETER4 כותרת ההודעה(הודעה אישית לXXX במקרה שלנו)
PARAMETER5 (לא השתמשנו) גוף ההודעה. רלוונטי למקרים שהפרמטר הבא true
PARAMETER6 האם להוסיף את המסמך (Attachment) או לא (עבור output_format=PDF, חייב להיות true).
PARAMETER7 כתובת המענה
PARAMETER8 (לא השתמשנו) - BCC

PDF :

במקרה של PDF, ערך PARAMTER6 הוא כמובן true.
הפעם גם יש דוגמא של ערך PARAMETER5. היתר כמו בHTML.

select "O_PEOPLE"."EMAIL" as "KEY",
     'Mail_Content.Personal' as TEMPLATE,
     'he-IL' as LOCALE,
         'PDF' OUTPUT_FORMAT,
     'EMAIL' as DEL_CHANNEL,
     "O_PEOPLE"."EMAIL" as PARAMETER1,
     'Tovit_and_Boris@oracle.com' as PARAMETER3,
     concat('הודעה אישית ל',"O_PEOPLE"."FIRST_NAME") as PARAMETER4,
     'שלום רב '||"O_PEOPLE"."FIRST_NAME"||' מצורף קובץ עם הודעה אישית אליך'||chr(13)||chr(13)||'בברכה'||chr(13)||'טובית ובוריס' as PARAMETER5,
     'true' as PARAMETER6,
     'noreply@oracle.com' as PARAMETER7
 from    "SH"."O_PEOPLE" "O_PEOPLE"


זה הכל.




עכשיו יוצרים Report Job  חדש.

בוחרים את הדוח שיצרנו.

בלשונית Output, רואים שדלוק הBursting 
ומתזמנים ריצה אחת או יותר


כמובן, כדי שמשהו ישלח בפועל, יש להגדיר חשבון הפצת דואר אמיתי. ההגדרה נמצאת ב-Administration  של הpublisher (תחת Delivery / Email):
אם לא יודעים מה לבחור כאן, בדקו את הגדרות הדואר שלכם.

 

Thursday, April 7, 2016

OBI - Data Visualization / VA - filtering

When working with Oracle Visual Analyzer / Data Visualization (will be described as VA in the post), most of the work with filtering is trivial, but there are few tricks to be aware of.

The basics:

We can create filters in VA by marking values and selecting (right click and keep selected) from the canvas:

Or by dragging a column to the filter area:

We can put a column in filter area without any values selected. In those cases, they work as "sort of" prompts, waiting for the project user to select values:
 

Measure in filter will show a little histogram of possible values, when we can drag the bar bellow, to select the limits.
I prefer typing Minimum ans Maximum values.
If we enter only minimum value that means greater than. In our case Revenue >1000:

Entering both Min and Max created between. i will leave it up to you to guess what entering only Max means.
To clear the value, press the greyed Min / Max button.

Please notice the "By", at the bottom of the picture.  By default the Measure is aggregated by all the attributes in the project (in our case Product, Year and Quarter).

What can I do if I want to see only product with Revenue>1000, for all the periods? I will remove the relevant marks:
 

Attributes in filter are based on searching and selecting:

the search pattern is "contains" and values can be selected by clicking on them or selecting "Add all" (usually after a search). When nothing selected, the filter is not active.

For example I typed 'Ga', and pressed "Add All"


Less Basic:

You might have seen an icon at the right part of the filter section:

This is an extra filter menu:

The interesting part here is the "add Expression Filter" option.

Here we can do some extra interesting things.
 
For example only products with first letter 'G':
 
All we need to do is select a function from the list and drag relevant columns to the Expression Filter window:
 

Here, at the Expression Filter,  all our dynamic filters can live happily ever after.