Jump to content

Clayton Peacock

Members
  • Posts

    27
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by Clayton Peacock

  1. Hi @David Briars tried with a couple arguments recursionDepth=-1 but looks like the web services on the test page doesnt have any argument options. I would use the client adapter, as you can create hold files etc of the groups and subgroups and merge these to get all the users.
  2. Pleasure @David Briars check out option 3 suggested above as well can do some really cool reports on the client repository
  3. Hi @Sara Smith might be useful see function UFMT? TABLE FILE CAR SUM CAR NOPRINT COMPUTE NAME_UMLAUTS/A50 = 'Günther'; COMPUTE NAME/A50 = 'Gunther'; COMPUTE HEXCODE_UMLAUTS/A6 = UFMT(NAME_UMLAUTS, 50, HEXCODE_UMLAUTS); COMPUTE HEXCODE_NAME/A6 = UFMT(NAME, 50, HEXCODE_NAME); END UFMT: Converting an Alphanumeric String to Hexadecimal The UFMT function converts characters in an alphanumeric source string to their hexadecimal representation. This function is useful for examining data of unknown format. As long as you know the length of the data, you can examine its content.
  4. Hi @David Briars there are 3 ways to get any information from the client repository. Connect directly to client repository database Connect using webservices XML returned: https://<your server name>/ibi_apps/WFServlet?IBFS1_action=TEST Connect using the WebFOCUS client repository adapter The 3 option is probably the easiest way to retrieve this information and there is a host of example fexes that the adapter generates.
  5. WHENCE PRODUCT_MAINTENANCE_REQUEST MASTER Had same issue master file was in FOCCACHE, above helped me.
  6. Hi @J. J. See created by @Patrick Huebgen once you have the connection setup to the client repository navigate to the wfcsampl/list_repositorytree.fex(samples generated for you by the adapter). Running this list_repositorytree.fex will give you 5 levels in the repository - this should help you find the objects owned by a specific user.
  7. Hi @Erin Trotter Why not use the WebFOCUS client adapter instead of going directly to the database? The adapter will generate some sample queries for you to get up and running very quickly and you can add/update/delete users/content etc and interact with the client repository - this is the solution you are requesting. We automated this process, ReportCaster job runs daily to get all the users that haven't logged in for 90 days(GET_USERS) we then use this list to loop through and update the users status'(ADD_USER). Below should get you started: DEFINE FILE GET_USERS -* GMT+2 = 7200000 BOT_START/D14 = EDIT(LASTSIGNIN) + 7200000; BASE_DATE/YYMD = 19700101; HBASE_DATE/HYYMDIA = HDTTM(BASE_DATE,8,'HYYMDIA'); LAST_SIGNIN/HYYMDS MISSING ON = IF LASTSIGNIN EQ '' THEN MISSING ELSE HADD(HBASE_DATE,'MILLISECONDS',BOT_START,8,'HYYMDS'); LAST_SIGNIN_YYMD/YYMD = HDATE(LAST_SIGNIN,'YYMD'); DAYS_SINCE_LOGIN/I9 MISSING ON = IF LAST_SIGNIN_YYMD EQ '' THEN MISSING ELSE DATEDIF(LAST_SIGNIN_YYMD, '&YYMD', 'D') END TABLE FILE GET_USERS PRINT GET_USERS.ITEM.NAME3 AS 'Userid' GET_USERS.ITEM.DESCRIPTION1 AS 'User Description' GET_USERS.ITEM.EMAIL AS 'Email Address' GET_USERS.ITEM.NAME2 AS 'Status' LAST_SIGNIN AS 'Last Signin(DT)' LAST_SIGNIN_YYMD AS 'Last Signin' DAYS_SINCE_LOGIN AS 'Days since login' BY HIGHEST DAYS_SINCE_LOGIN NOPRINT WHERE DAYS_SINCE_LOGIN GE 90; END -RUN
  8. Online channels and forums are great for how to's - very happy the forums are back. Training fuels adoption and expansion with the organization - WebFOCUS is the best kept secret. Clients are asking for formal certified training with roadmaps that's readily avaiable - a comprehensive list of set courses available that are offered to clients online, based on their role within the organisation (admin/developer/business user) etc. In the good old days we offered our clients a variety courses; these are just some of the courses I could find. 305 ReportCaster Scheduling and Distribution 340 Metadata Essentials 351 Building Reports with Report Painter (Part 1) 354 Report Painter (Part 2) 361 Security Administration 372 Application Administration Essentials 402 Reporting Techniques for Relational Databases Course 340 Metadata Essentials Course 351 Building Reports with Report Painter (Part 1) Course 354 Report Painter (Part 2) Course 361 Security Administration Course 363A Building a Business Intelligence Portal - Part 1 Course 363B Building a Business Intelligence Portal - Part 2 Course 365 InfoAssist Essentials - Part 1 Course 366 InfoAssist Essentials - Part 2 Course 367 InfoAssist Essentials - Part 3 Course 372 Application Administration Essentials Course 402 Reporting Techniques for Relational Databases Course 500 WebFOCUS Bootcamp
  9. Hi @Dave Pfeiffer, My pleasure, if we don't actively request and log NFR's IBI won't know what can be improved on - just logged a NFR for RC task to link to a CM export scenario. Thanks for the above comprehensive response, we hope to see these enhancements will be implemented soon, especially the legacy, RC, CM, Security Center and admin pages updated. Our developers still prefer to use /ibi_apps/home(Home) vs /ibi_apps/start(Hub). We have 70+ workspace, Home loads a lot quicker... The search and locate item is great, I see this is only in the Hub and not on the Home page search. Kind Regards, Clayton
  10. I looked at the fexes generated by the WebFOCUS client adapter, get_reportinfo.fex, the report lists the masters used in a specific fex. BUT you will need to do a lot of looping through the repository tree structure and this will be a lengthy exercise.
  11. I would export all the workspaces via CM export package and then scan the fexes with a text editor seaching for the master - this I think is the easiest. The impact analysis on server console to my knowledge only looks at fexes in the app path. Also possible to use WebFOCUS client webservices adapter but might be tricky and lengthy approach.
  12. In my environment we have a welcome page tab, on the welcome page in a collaborative portal clicking on the hyperlink will drill/navigate to a tab/page in the portal. To get the correct name for the portal page, navigate to the workspace root folder, inside the root folder there will be a hidden folder with the name of your <portal name> resources. If you have created multiple tabs with the same names or renamed tabs the original "<tab name>.page" is the page/tab that you want to use to navigate to in your function - this caused me some frustration. TYPE=DATA, COLUMN=N2, JAVASCRIPT=navigateToPage('Resources_Filtered'), $ Online references: JAVASCRIPT=navigateToPage How to Use JavaScript to Navigate to a Portal Page
  13. Pleasure! We are on WF9.2.1. ReportCaster and Change management also interfaces could also do with a nice refresh 🙂
  14. Pleasure @Dave Pfeiffer think there are a number of things that could be considered and might ask some clients to view and give their options in a beta release to get some feedback eveyone uses WebFOCUS a little differently that's the beauty. Some more off the top of my head: WebFOCUS Default landing page: Ability to select default landing page for all users and the views on the landing page - Our developers access the WebFOCUS home page and need to select Workspaces menu item each time after the page loads currently by default the Recents/Favs view loads. List of portals on the landing page would be great - ability to customise - I would remove recent, only show favs and portals(collaborative) for all our end users but developers able to set preference. A portals(collaborative) button would be helpful - ability to select by default as per above White labelling: Theme/CSS needs to be applied to all client pages, navigating to security center, admin console(sub menu's) all look different - icons purple and padding. Clicking on <server>/admin you cant see some of the labels and options to select including save button. Navigating to the server console directly :8121 ignores white labelling only get white labelling via client navigation Metadata: Opens Designer after creating content, annoying developers as they close this window each time - we dont use designer as yet. Search Workspaces(client home): Ability to right click and open the location of the searched item found in Workspaces. At the moment you need to right click and select properties and copy the path so you can find the exact location of the searched item - tedious. Ability to search for content inside procedures etc would be really helpful. Text Editor: Most of our developers spend their time here, the icons not always explanatory - need to onHover to find out what the button/icon does. Additional shortcuts and commonly used functions etc here to enhance developers experience compared to other editors would be appreciated Including functions references etc here
  15. We encountered a similar scenario involving a large workforce of over 30k employees. To address this, we implemented the following changes: Employee Name Search We replaced the droplist/combobox with a text box - free text or consider typeahead custom solution The text box performs a fuzzy search on employee names, allowing for more flexible and accurate searches. Conditional Loading of Supervisor and Class In your example, the Supervisor and Class fields load dynamically only after the user selects a specific Department(onChange event). This approach optimizes performance by fetching relevant data only when necessary to load Supervisor/Class which will be a smaller subset of data. Performance Optimization FOCCACHE File Creation: Consider creating the necessary files in FOCCACHE before the HTML loads so they wait only once for the unique values, these files can be referenced by your filters, leading to potential speed improvements. ReportCaster Job for XFOCUS Table: Alternatively, can run a daily ReportCaster job to create an XFOCUS table for faster data retrieval with unique combinations for controls. We use JQuery to create our magical filters.
  16. I was in the same situation where I had to view some content created in WF 8.2.07 and agree with you the old design was much better, easier on the eye. In the tile view we had custom images for our portals, in WF 9.2.1 the image is so tiny on the tile it not viewable. Many of our business users created thumbnails(camera button) in InfoAssist which they really liked. When you click on workspaces on the home page in our env for split second when it loads you see the very old navigation with "Ask WebFOCUS" on the menu. On the plus side, in WF 9, we finally have custom white labelling - still some CSS issues(bug logged on TechSupport) like in admin console/security center with purple pngs and padding - I dont use Hub still use admin console link.
  17. Thanks @Martin Yergeau wanted to incorporate a MORE FILE for one of my developers 🙂
  18. Check that your public user is active in security center and is in the Anonymous group. Stop All WebFOCUS + Tomcat service, delete below files: E:\ibi\tomcat_980\logs E:\ibi\tomcat_980\work E:\ibi\WebFOCUS82\logs Run public content after all services started and check WebFOCUS logs audit.log and event.log to see if you get any insights to the why you getting prompted.
  19. Dynamic column formats: DEFINE FILE CAR KPI_LABEL/A100 = 'My ENGLAND label:'; KPI_CALC/D20.2 = RETAIL_COST - DEALER_COST; KPI_FORMAT/A10 = 'D20.2CM'; END TABLE FILE CAR SUM KPI_CALC BY KPI_LABEL BY KPI_FORMAT WHERE COUNTRY EQ 'ENGLAND'; ON TABLE HOLD AS HLD1_ENGLAND END -RUN DEFINE FILE CAR KPI_LABEL/A100 = 'My Japan label:'; KPI_CALC/D20.2 = ((RETAIL_COST-DEALER_COST)/100)*-1; KPI_FORMAT/A10 = 'D20.1%B'; END TABLE FILE CAR SUM KPI_CALC BY KPI_LABEL BY KPI_FORMAT WHERE COUNTRY EQ 'JAPAN'; ON TABLE HOLD AS HLD1_JAPAN END -RUN TABLE FILE HLD1_ENGLAND HEADING "Tips and Tricks: Dynamic column formats" -* Dynamic format for column KPI_CALC based on format specified in KPI_FORMAT column SUM KPI_CALC/KPI_FORMAT KPI_FORMAT BY KPI_LABEL MORE FILE HLD1_JAPAN END
  20. Hi Debra, One ReportCaster task should use one agent not 83. Once the agent is finished processing the task, the connection that you see in the server consoles "connections" will increment till it reaches the agent refresh limit of 100 and will recycle the agent. You might want to increase the number of max agents available if all your agents are being utilized - maybe increase to 50 maximum but be cautious as this will take up server resources possibly. Are you ReportCaster jobs queuing that you are concerns about this? Maximum: The number of agents available ready(default) is 40 Defines the maximum number of data access agents that the Workspace Manager will allow to run simultaneously for a specific service The absolute upper limit for the value of this keyword is the size of the agent table and may be limited by system resources. But in practice it should be significantly less than that to leave enough room in the agent table for agents in transitory states while allowing for the maximum number of active agents. Number ready: Defines the number of data access agents that the Workspace Manager will create at startup for a specific service. These pre-started agents will thus be available in advance so that client connections can be established more quickly, due to the preloading of some modules. The Workspace Manager will not attempt to maintain this number of agents after startup if agents are terminated for any reason. Regards, Clayton
  21. On the workspace screen: Right Click Data services Select Properties Note that there is an on hover help next to each of the settings. Also, in the top right of the server console there is a (Online Server Help) select ? (question mark) icon to expose drop menu this will give you more detail. "Does this mean if a process attempts to get more than the maximum agents configured will crash?" - No, this means that the agent will be "refreshed" start from 0 again. My recommendation is not to change these settings.
  22. Hi Debra, I think you are referring to the agent refresh which defines the maximum number of new connections which can be accepted during the life of each agent process - default is 100. Beyond this limit, additional new connections will be assigned to a fresh agent. Agent processes which have reached the limit will be terminated when the last accepted session disconnects. A server configuration requires at least one agent service with the name DEFAULT, defined by a SERVICE block. An agent service is an entity used to define the parameters for a group of data access agents, so that a configuration can manage different groups of data access agents for different purposes. Each data access agent runs for a specific Data Service, and each service may have different values for the settings defined on the services configuration panes. These settings include: The maximum number of data access agents and the number of agents prestarted at server startup for a service, as defined by maximum and number ready. The lifetime of the agents of a server, which can be limited through idle agent limit, CPU time limit, and/or memory limit. Incoming connections for which there is no available data access agent. These can be put in a queue for the service (configured using maximum_q and queue limit), and after they are connected, their idle time can be limited using idle session limit. The deployment mode of a service, which defines how data access agents are assigned to connections. Kind Regards, Clayton
  23. -SET &ECHO=ALL; -* Font Awesome - https://fontawesome.com/download SET CSSURL ='/approot/common/fontawesome/fontawesome-free-6.5.1-web/css/all.css'; DEFINE FILE CAR FA_EXAMPLES/A100 = '<a target="_blank" href="https://fontawesome.com/search?o=r&|m=free">Free Font Awesome Examples</a>'; FA_DOWNLOAD/A100 = '<a target="_blank" href="https://fontawesome.com/download">Download</a>'; FA_ICON/A100 = IF COUNTRY EQ 'ENGLAND' THEN '<i class="fa-solid fa-lg fa-chess-king"></i>' ELSE IF COUNTRY EQ 'FRANCE' THEN '<i class="fa-solid fa-lg fa-wine-bottle"></i>' ELSE IF COUNTRY EQ 'ITALY' THEN '<i class="fa-solid fa-lg fa-pizza-slice"></i>' ELSE IF COUNTRY EQ 'JAPAN' THEN '<i class="fa-solid fa-lg fa-user-ninja"></i>' ELSE IF COUNTRY EQ 'W GERMANY' THEN '<i style="color:#01C851" class="fa-solid fa-2x fa-car"></i>' ELSE '<i class="fa-solid fa-circle-question"></i>'; -* Sizing FA_SIZING/A100 = '<a target="_blank" href="https://fontawesome.com/docs/web/style/size">Sizing Icons</a>'; FA_SIZING_XS/A50 = '<i class="fas fa-camera fa-xs"> fa-xs</i>'; FA_SIZING_SM/A50 = '<i class="fas fa-camera fa-sm"> fa-sm</i>'; FA_SIZING_LG/A50 = '<i class="fas fa-camera fa-lg"> fa-lg</i>'; FA_SIZING_2X/A50 = '<i class="fas fa-camera fa-2x"> fa-2x</i>'; FA_SIZING_3X/A50 = '<i class="fas fa-camera fa-3x"> fa-3x</i>'; FA_SIZING_5X/A50 = '<i class="fas fa-camera fa-5x"> fa-5x</i>'; FA_SIZING_7X/A50 = '<i class="fas fa-camera fa-7x"> fa-7x</i>'; FA_SIZING_10X/A50 = '<i class="fas fa-camera fa-10x"> fa-10x</i>'; END TABLE FILE CAR HEADING "Examples Free: <FA_EXAMPLES" " " "Download: <FA_DOWNLOAD" " " BY COUNTRY BY FA_ICON FOOTING " " "Examples: <FA_SIZING" " " "<FA_SIZING_XS" "<FA_SIZING_SM" "<FA_SIZING_LG" "<FA_SIZING_2X" "<FA_SIZING_3X" "<FA_SIZING_5X" "<FA_SIZING_7X" "<FA_SIZING_10X" ON TABLE HOLD AS HLD1 FORMAT HTMTABLE ON TABLE SET STYLE * TYPE=DATA,COLUMN=FA_ICON,CLASS='myClass',$ ENDSTYLE END -RUN -HTMLFORM BEGIN <!DOCTYPE html> <html> <head> <title>Font Awesome + WebFOCUS!</title> <style> .myClass { color: #4385F5; } </style> </head> <body> <h3>Font Awesome</h3> <p> !IBI.FIL.HLD1; </p> </body> </html> -HTMLFORM END -EXIT
×
  • Create New...