Some end users have been complaining to me about losing their public and private reports after installing a new version of an application. Somewhere, somehow, the connection between the application and the saved reports has been lost. This has now happened several times and something has to change. I’ve chosen to revoke the create public report privilege of all end users and convert all public reports to alternative reports.
When exporting the application from acceptance environment the following settings are met.

Public and private reports aren’t exported because all the saved reports, except primary and alternative, only exist in the production environment. The Export with Original IDs option is set to yes, this will ensure that all the component IDs are the same as of the last import. When upgrading an application through the DTAP-street the component IDs should be the same. These IDs are what APEX uses to load the correct items on a page. When an ID changes a mismatch will happen, and the component isn’t loaded.
Somewhere along the line some of the IDs have been changed and as a result the end users can no longer find the saved public reports.
First, we have to find the missing public reports. When connecting to the APEX-schema, you can find all the views which are used by APEX. The view apex_application_page_ir_rpt contains all the saved Interactive Reports, including the reports of the builder. The following query retrieves all reports excluding the APEX builder reports and the primary reports.
select
workspace
, application_id
, page_id
, interactive_report_id
, report_id
, application_user
, report_name
, status
, report_type
from
<apex_user>.apex_application_page_ir_rpt
where
report_type != 'PRIMARY_DEFAULT'
and workspace != 'INTERNAL';
The application_user shows the user who saved the report and interactive_report_id contains the foreign-key id to the report region id. This can be found using the view apex_application_page_ir. The report_type and status columns are important, both should contain “PUBLIC” to be of interest here.
When all the (missing) public reports have been found, we could take back control over them by changing the report type and application user. We no longer allow the creation of public reports, so all reports should be default (alternative or primary) reports. This gives the control back to developers and should reduce the proliferation of reports in the application.
The following statement updates one or all public reports. By setting the application_user to “APXWS_ALTERNATIVE” all developers become owner of the reports. It’s also possible to update the interactive_report_id column with the correct IDs, but this isn’t the solution I’m after.
-- individual update
update <apex_user>.wwv_flow_worksheet_rpts
set application_user = 'APXWS_ALTERNATIVE'
, is_default = 'Y'
where id = < report_id >;
-- update all public reports
update <apex_user>.wwv_flow_worksheet_rpts
set application_user = 'APXWS_ALTERNATIVE'
, is_default = 'Y'
where application_user not in ('APXWS_ALTERNATIVE','APXWS_DEFAULT')
and r.status != 'PRIVATE';
Lastly, if you want to change filters or the selected columns of a saved report it is also possible to do this via the database. The table wwv_flow_worksheet_rpts contains multiple columns for filtering, sorting and computing the report. Updating the columns will result in a different saved report.
Conclusion
By updating the application user to “APXWS_ALTERNATIVE” in the table wwv_flow_worksheet_rpts it’s possible to change the owner of a saved report. This helped me as a developer to take back control over the saved reports.
Oracle DBAs love to use SQL*Plus when installing database objects. As a developer, I make SQL install scripts. Which then are executed by these DBAs. These scripts contain references to other files with the actual SQL statements. Below is an example of an install script, here the user will be prompted with the step and then the file will be executed.
Prompt install tables
@@table_emp.sql
Prompt install triggers
@@trigger_emp.sql
Prompt install views
@@view_emp.sql
...
Normally the script runs and all the statements are executed without problems. Lately, I’ve encountered some problems after I started to use the IDE PL/SQL Developer for writing my scripts.
When executing the install script using sqlplus, errors start to appear. Listed below, is a snippet of the logging. The error “SP2-0734:” is a general error for statements that aren’t recognized.
install tables
SP2-0734: unknown command beginning "create ..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP and to leave enter EXIT.
install triggers
...
When I look at the create table statement nothing seems incorrect. Even when I copy the statement and execute this in sqlplus the statement is accepted and the table is created. This means something should be wrong with the file and not with the statement.
When searching for the SP2-0734 error most of the solutions lay in correcting its statement. But here it wasn’t the case. When I delved deeper into the logging file I found some interesting errors:
SP2-0734: unknown command beginning "create ..." - rest of line ignored. SP2-0734: unknown command beginning "for ..." - rest of line ignored.
For the first time, I noticed an error in my statement, namely . I don’t see these weird characters in my statement, but sqlplus does see them. This must mean that there is an error in the file itself. Opening the file with SQL Developer or PL/SQL Developer gave me no further insight.
Notepad++, on the other hand, does. Notepad++ gives you the option to save a file with a certain encoding. When I looked at this encoding I saw that my files were saved with the UTF-8 BOM encoding instead of UTF-8.
BOM (Byte Order Mark) is a particular usage of the special Unicode character, whose appearance as a magic number at the start of a text stream can signal several things to a program reading the text. BOM use is optional. Its presence interferes with the use of UTF-8 by software that does not expect non-ASCII bytes at the start of a file but that could otherwise handle the text stream. [1] The use of BOM, therefore, is discouraged.
Here you have it, software that does not expect non-ASCII bytes at the start of a file can behave differently. Saving all the files with encoding UTF-8 instead of UTF-8 BOM and running the install script again resulted in 0 errors.
Now that the install script was working correctly I needed to find out why PL/SQL Developer saves files with BOM encoding. When searching the preferences I found in Files > Format the option “Encoding”. Default the checkbox “Save with BOM (Unicode Byte Order Mark)” is checked. By unchecking this option the files will now be saved correctly.

Conclusion
When faced with the “SP2-0734: unknown command beginning ..” error in SQL*Plus and you’re sure the statement is valid, please look for the encoding of your file. When files have the encoding UTF-8 BOM change this to UTF-8.
Dit moet je doen om te solliciteren
Ben jij onze nieuwe collega maar hebben we niet direct een vacature die jou past? Stuur je cv en sollicitatiebrief naar solliciteren@transfer-solutions.com of vul het formulier rechts op de pagina in en upload je cv.
Dit ga je doen…
bij Transfer Solutions werk je samen met collega’s aan de meest interessante opdrachten. Hierbij gebruik je je sterke affiniteit c.q. ervaring met software-ontwikkeling. Je werk is heel afwisselend, omdat Transfer Solutions zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Soms werk je vanuit ons kantoor in Leerdam, een andere keer zit je bij de klant op locatie. Ook de duur van de opdracht varieert, de ene keer is een project binnen een paar weken afgerond, de andere keer ben je langer met een opdracht bezig.
Dit ben jij
- Je hebt een hbo- of universitaire opleiding afgerond
- Je hebt belangstelling voor IT
- Je bent persoonlijk integer, analytisch sterk, resultaatgericht en besluitvaardig
- Je spreekt en schrijft uitstekend Nederlands en goed Engels
Dit bieden wij
- Hybride werkomgeving
- Trainingen en certificeringen, op onze kosten
- Doorgroeimogelijkheden en specialisaties
- Arbeidsvoorwaarden op maat
- Leaseauto of vervoersbudget
- Telefoonvergoeding en laptop
- Goede pensioenregeling
- Collectieve zorgverzekering
- Netto onkostenvergoeding
- Marktconform salaris
- Bonusregeling op basis van individuele en bedrijfsprestatie
Daarnaast hebben we veel meetups, zoals kennisgroepen, informatieavonden, sportevenementen, game-avonden, personeels- en gezinsuitjes, en nog veel meer.
Dit moet je doen om te solliciteren
Ben jij onze nieuwe collega maar hebben we niet direct een vacature die jou past? Stuur je cv en sollicitatiebrief naar solliciteren@transfer-solutions.com of vul het formulier rechts op de pagina in en upload je cv.
Iedere organisatie is zuinig op de gegevens waarvan zij gebruik maakt of waarvoor zij verantwoordelijk is. Door middel van de vastgelegde beveiligingsregels is toegang niet zonder meer mogelijk.
Deze beveiliging is vaak op verschillende vlakken geïmplementeerd: bepaalde locaties zijn niet voor iedereen toegankelijk, informatiesystemen worden beveiligd met minimaal een (voldoende lang!) wachtwoord en zo zijn er nog wel meer maatregelen. Al deze maatregelen moeten er voor zorgen dat de gegevens niet zonder meer kunnen worden geraadpleegd of, nog erger, ontvreemd.
Toch zien we nog vaak genoeg dat er inbraakpogingen zijn om de gegevens wel te bemachtigen: veel gegevens hebben een waarde waarvan we ons niet bewust zijn. Van creditkaartgegevens kunnen we ons een voorstelling maken, maar ook persoonsgegevens zijn waardevol voor partijen die er misbruik van willen maken.
Hoewel de meeste organisatie hun best doen om de verschillende gegevens te beveiligen, zijn er soms lekken in de gebruikte software. Leveranciers leveren hiervoor dan zogenaamde patches om deze (beveiligings-) lekken te repareren. Oracle (-database) omgevingen zijn complexe software packages die constant worden aangepast en ge-updated om performance en security te verbeteren, om bugs te verhelpen en beveilgingsfunctionaliteit toe te voegen.
Om deze updates te installeren, moet de software worden gedownload en geïnstalleerd op uw server.
De (security-) patches van Oracle worden vier keer per jaar op een vaste datum uitgebracht. Deze data zijn van te voren voor een heel jaar bekend. De patches dienen bij voorkeur in de ‘OTAP’ volgorde te worden geïnstalleerd en gevolgd te worden door een gedegen test per omgeving. Bovendien gaat de installatie van een patch altijd gepaard met downtime voor de database(s) of andere producten. Een aanpassing van de Oracle software heeft effect op alle databases die deze software gebruiken.
Om Oracle patches te mogen downloaden en installeren is naast een licentie voor Oracle producten ook een support contract bij Oracle noodzakelijk. Zonder dit mag Transfer Solutions de betreffende patches niet installeren.
Het beleid voor het succesvol implementeren van patches houdt in dat er aan een aantal voorwaarden voldaan moet worden:
- Uitvoeren van patch geschiedt alleen na goedkeuring van de klant
- Voor uitvoering van de patch wordt een implementatie- en fallbackplan opgesteld.
- Voor uitvoering van patch in een productie-omgeving wordt deze in minimaal één test-omgeving uitgevoerd.
- Applicatiebeheer van de klant stelt een gedegen testplan op om na patching van de database de werking van de applicatie te testen op functionaliteit en performance.
Transfer Solutions is van mening dat het altijd raadzaam is de door Oracle uitgebrachte security patches te installeren op de database servers, maar dan wel als onderdeel van een security beleid waarin ook aandacht wordt geschonken aan o.a.
- Accountbeheer en verleende autorisaties
- Gebruikte wachtwoorden (geldigheid en “sterkte”)
- Patching van OS en applicatie-software
Voor het installeren van de CPU patches van Oracle maken wij voor uw omgeving op uw verzoek een stappenplan. Hierbij wordt ook rekening gehouden met zaken als doorlooptijd, beschikbaarheid en terugkeerscenario.
Natuurlijk gebeurt dit alles in overleg met u en wordt ook telkens een duidelijke update gegeven. Hiermee bent u altijd op de hoogte van de meest actuele status.
De werkzaamheden kunnen op afstand worden uitgevoerd als u klant bent van onze afdeling Remote Services. In alle andere gevallen zal één van onze consultants de werkzaamheden on-site komen uitvoeren.
Uiteraard kunnen we met u ook ader overleggen om dergelijke installaties vast onderdeel te laten uitmaken van uw beveiligingsbeleid. Met ervaring op het gebied van PCI/DSS en ISO27001 kan Transfer Solutions uw partner zijn op het gebied van beveiliging. Dat we dit in de praktijk waarmaken, blijkt uit het feit dat Transfer Solutions zelf ook ISO27001 gecertificeerd is.
MultiTankcard maakt slim gebruik van actuele data om hun business niet alleen inzichtelijk te maken, maar ook sales te verhogen én zich te profileren als thought leader. Luister de podcast met de experts van Transfer Solutions over waarom MTC koos voor datagedreven werken.
Beluister onze podcast, die is opgenomen in het ConnectivityCafé van Transfer Solutions, over de mate van connectiviteit die een organisatie nodig heeft om datagedreven te worden. Eric Bruins (Connectiviteit Expert bij Equinix) en Fabio Vrolijk (Projectleider bij Transfer Solutions) gaan hierover uitgebreid met elkaar in gesprek en geven hun visie hierop. Ook de trends en klantervaringen zullen besproken worden.
Oracle biedt een unieke kant-en-klare oplossing voor data-integratie waarmee organisaties direct kunnen beginnen. Luister de podcast met experts van Transfer Solutions over de onbegrensde mogelijkheden van data-integratie.
Many companies fail to digitally transform their business because of the time and resources that were spent building out their core technology stack. But digital transformation, once a long-term strategy, is now a necessity to compete in a rapidly changing environment. Download this eBook to learn how a platform approach allows companies to create innovative solutions to increase productivity and efficiency while improving user experience – all while still getting the most out of their investment in legacy systems.
In this eBook, you will learn how to:
- Modernize at your own pace, without the risk of rip-and-replace
- Provide IT with the speed and agility required to innovate
- Use a modern application platform to extend, refactor, or re-build your existing systems
- And more!
Een aantal jaar geleden zette Transfer Solutions en de IT-afdeling van Kramp het OutSystems ontwikkelplatform op. Daarna werd Transfer Solutions opnieuw benaderd, dit keer door de afdeling Finance & Control, om de budgetcontrole van het landenmanagement te optimaliseren. De bestaande management reports werden tot op dat moment door ieder land maandelijks ingestuurd en de resultaten in een Excel/Word bestand bijgehouden. De wens vanuit de afdeling was om het systeem voor deze managementrapportages te optimaliseren en meer inzicht te krijgen in de datagegevens. Deze tool moest daarnaast ook een efficiënte informatievoorziening naar alle interne stakeholders faciliteren. Remko Schepers, Manager Business Control Development bij Kramp, vertelt: ‘Meeliftend op de golf van digitale transformatie binnen Kramp waarin OutSystems als ontwikkelplatform zijn intrede al had gedaan, hebben we binnen Finance & Control het idee gevat om deze tool binnen de Citizen omgeving van OutSystems te laten bouwen. Nadat we samen met Transfer Solutions de IT-uitdaging in kaart brachten, werd op basis van een Proof of Concept (PoC) de haalbaarheid van het idee getoetst.’
Halverwege het proces kwam de vraag om er een module bij te bouwen; de Rolling Forecast applicatie. Een applicatie waarmee vooruit wordt gekeken op het budget, door de omzet en marge van de komende 12 maanden te voorspellen en eventueel bij te sturen. Deze module ontwikkelde Transfer Solutions binnen twee maanden. De Country Report applicatie ging in het voorjaar van 2020 live en de Rolling Forecast in de zomer van 2020. Samen vormen deze twee modules de overkoepelende applicatie MPower; de ondersteuning vanuit de afdeling Finance & Control aan het management groepsbreed.
Download de referentiecase en lees hoe de samenwerking gegaan is.

