SlideShare une entreprise Scribd logo
1  sur  33
APEX connects Jira
Oliver Lemm
APEX World
07.03.2016
Facts & Figures
Independent Technology House
with Cross-Industry Expertise
Headquarter
Ratingen
(North Rhine – Westphalia)
240
Employees
Founded
1994
Branches
Dortmund, Cologne,
Frankfurt
Top Company
for Trainees &
Students
Privately-
Owned
Corporation
Oracle
Platinum
Partner
24 Mio. Euro
Revenue
2
about me
 Oliver Lemm
 since february 2007 working for MT AG in Ratingen
 Junior Consultant > Consultant > Senior Consultant
> Competence Center Leader APEX & Service Center Leader APEX
 Diploma applied computer science at the university of Duisburg-Essen
 Projectleader, IT-Architect and Developer
 working with Oracle Databases and Oracle Application Express since 2007
 Blog http://oliverlemm.blogspot.de
 Twitter https://twitter.com/OliverLemm
3
APEX Connect
26th – 28th April 2016 in Berlin
Get your early-bird ticket now!
APEX.DOAG.ORG#APEXCONN16
Agenda
1. Motivation
2. Jira
3. Webservices
4. JSON
5. Livedemo
5
Motivation
„Working with one tool to handle the developing process,
controlling and all other processes in one project“
„Calculating key figures based on Jira values which are not delivered by Jira itself.“
„Using integrated Jira Plugins and adding additional
functionality by using APEX as known technology“
6
requirements
Jira
 https://www.atlassian.com/JIRA
 Issue tracking and code integration
 Supporting Dashboards & Plugins
 perfect integration from Confluence (wiki)
and Subversion (versioning)
 supporting complex workflows
 Issue import from Bugzilla, Mantis, GitHub, …
 Supporting von REST-Webservices
7
8
Jira
9
Workflow
Jira
 supporting a huge number of attributes
 time tracking (estimated, time spent, remaining)
 Components (can be used for APEX pages and database objects)
 versions
 fields and screens adjustable per project
 external issue numbers, date of commision, date of payment
 Supporting own workflows
 Describing a whole process, usable for non developing processes
 Every step can be defined by user rights or issue dependencies
 Using „JIRA Timesheet Reports and Gadgets Plugin“
10
Integrated features
Jira
 key figures not in desired aggregation
 time per year/month
 no further support for SOAP Webservices in Jira
 SOAP Interface doesn‘t return all values
 Using Jira-Plugins
 Listed Plugins not fullfilling all requiremends
 Developing own Jira-Plugins is complex and time consuming
11
lack of features
Jira
 API documentation for Jira REST-Webservices
https://docs.atlassian.com/jira/REST/latest/
 URL structure
 http://host:port/context/rest/api-name/api-version/resource-name
 Using an issue identfiied by the key JRA-9 would be like:
 https://jira.atlassian.com/rest/api/latest/issue/JRA-9
 Using JQL Language (syntax)
https://jira.mt-ag.com/rest/api/2/search?jql=project=BP
 Returning values in JSON Format (testable also in browser)
12
REST-Webservice
Jira
13
JQL
https://jira.mt-ag.com/rest/api/2/search?jql=project=BP
Jira
 addional information when getting REST-Webservice Result
 Default max 50 entries
 1. solution: add parameter &maxResults=XXX
 2. solution: add Parameter &startAt=50
 Sort the results
 If no Authentication needed, don‘t submit username/password -> you get Unauthorized (401)
14
REST-Webservice
"expand":"schema,names","startAt":0,"maxResults":50,"total":827,"issues":[….]}
https://jira.mt-ag.com/rest/api/latest/search?jql=project=BP&maxResults=1000
https://jira.mt-ag.com/rest/api/latest/search?jql=project=BP&startAt=50
https://jira.mt-ag.com/rest/api/latest/search?jql=project=BP+order+by+duedate
Webservices
 getting Error:
 Example: https://jira.atlassian.com/rest/api/latest/issue/JRA-9
15
ACL
ORA-29273: HTTP request failed
ORA-24247: network access denied by access control list (ACL)
begin
dbms_network_acl_admin.create_acl(acl => 'jira.atlassian.com.xml'
,description => 'An ACL for Calling REST Webservices.'
,principal => l_principal
,is_grant => true
,privilege => 'connect'
,start_date => systimestamp
,end_date => null);
dbms_network_acl_admin.assign_acl(acl => 'jira.atlassian.com.xml'
,host => 'jira.atlassian.com'
,lower_port => 443
,upper_port => 443);
commit;
end;
Webservices
 Getting existing ACL Entries
 Important for ACL
 Using Web Service References (shared
components or the APEX_WEB_SERVICE
(package)
 principal = APEX_050000
 using utl_http or other packages calling
external resources
 principal = my_schema_name
16
ACL select a.acl
,a.host
,a.lower_port
,a.upper_port
,p.principal
,p.privilege
,p.is_grant
,to_char(p.start_date
,'DD-MON-YYYY') as start_date
,to_char(p.end_date
,'DD-MON-YYYY') as end_date
from dba_network_acl_privileges p
left join dba_network_acls a on a.acl = p.acl
Webservices
17
exporting certificate
Webservices
 calling https:
 To solve this problem, you have to get the certificates which are used by the server which
runs Jira
 Getting certificate
 use your browser and call the URL from the REST-Webservice or even from Jira
 click on the lock symbol
 click show certificate
18
exporting certificate
ORA-29273: HTTP request failed
ORA-29024: Certificate validation failure
Webservices
19
importing certificate
Webservices
 use the Oracle Wallet Manager (OWM) to import the certificate
 run ORACLE_HOMEbinowm.cl (on windows a link is created)
 Import of the certificate is also possible using the command line
 create a wallet for the certificate using a path like this
ORACLE_BASEadmin<SID><name_wallet>
 Use automatic login for your wallet (otherwise you have to use the wallet always with your
password in your plsql code)
20
importing certificate
Webservice
 APEX documentation
http://docs.oracle.com/cd/E59726_01/doc.50/e39151/adm_wrkspc002.htm#BABHEHAG
 Login into your INTERNAL Workspace
Manage Instance
Instance Settings
Wallet
21
certificate in APEX
Webservices
 Shared Components
 Web Service References
 Create
 Problems
 based on single items
 authentification
 result as CLOB
only in Collection.
No support in
 apex_items
 report columns
 JSON Format
23
Web Service Reference
Webservices
24
Web Service Reference
Webservice
 Call REST
 p_http_method GET, HEAD, POST, PUT, DELETE
 Username & Password supporting Basic Authentication
 Parameter if parameter beside the URL itself are needed
25
APEX_WEB_SERVICE
l_clob := apex_web_service.make_rest_request(
p_url => 'https://jira.atlassian.com/rest/api/latest/issue/JRA-9'
,p_http_method => 'GET'
,p_wallet_path => 'file:C:oracleadminorclmein_wallet'
,p_username => 'lemmo'
,p_password => '123456 '‚
,p_parm_name => apex_util.string_to_table('param1:param2'),
,p_parm_value => apex_util.string_to_table('val1:val2')
);
JSON
 Datentypen
 String
 "QS - Demo Feature"
 "2015-11-03T13:48:16.630+0100"
 Number
 20
 Boolean
 true / false
 Null
 null
 Array
 [ {…}, {…}]
26
format
{
"id": "17149",
"self": "https://jira.mt-ag.com/rest/api/latest/issue/17149",
"key": "BP-7",
"fields":
{
“summary": "QS - Demo Feature",
"progress":
{
"progress": ​19800,
"total": ​19800,
"percent": ​100
},
"created": "2015-11-03T13:48:16.630+0100",
worklog": {
"startAt": ​0,
"maxResults": ​20,
"total": ​2,
"worklogs": [
{ ... },
{ ... }
]
}
}
}
JSON
 convert clob
to JSON object
 looping entries
 get value
27
processing
l_values apex_json.t_values;
….
apex_json.parse(p_values => l_values
,p_source => l_clob);
for i in 1 .. apex_json.get_count(p_values => l_values
,p_path => '.')
loop … end loop
l_jira_issue.key := apex_json.get_varchar2(p_values => pi_json_issue
,p_path => 'key');
l_jira_issue.timespent := apex_json.get_number(p_values => pi_json_issue
,p_path => 'fields.timespent');
JSON
 Number as String
 you have to convert
 Datetime as String
 Converting with
apex_json.get_date
doesn‘t work because
of format
 custom fields
in Jira are named like
customfield_xxxxx
28
special cases
"id": "17149"
"created": "2015-11-03T13:48:16.630+0100"
l_timestamp := to_timestamp_tz(pi_string
,'YYYY-MM-DD"T"hh24:mi:ss.FF3TZHTZM');
l_string := to_char(l_timestamp
,'yyyy.mm.dd hh24:mi:ss');
l_date := to_date(l_string
,'yyyy.mm.dd hh24:mi:ss');
apex_json.get_varchar2(p_values => pi_json_issue
,p_path => 'fields.customfield_10000');
JSON
 Time worked / Worklog not with information by day encapsuleted in issue
 you have call the worklog for every single ticket by one REST Call
29
special cases
for i in 1 .. apex_json.get_count(p_values => l_values, p_path => 'issues')
loop
l_rest_response := make_rest_request(pi_url => pi_jira_base_url || c_jira_rest_base_path || '/issue/' ||
apex_json.get_varchar2(p_values => l_values, p_path => 'issues[' || i || '].key'
,pi_username => pi_username
,pi_password => pi_password);
apex_json.parse(p_values => l_values_issue, p_source => l_rest_response);
l_jira_issue := get_issue_from_json(pi_json_issue => l_values_issue);
for j in 1 .. apex_json.get_count(p_values => l_values_issue
,p_path => 'fields.worklog.worklogs')
loop
l_jira_issue_worklog := get_issue_worklog_from_json(pi_json_issue_worklog => l_values_issue
,pi_path => 'fields.worklog.worklogs[' || j || '].'
,pi_jira_issue_id => l_jira_issue.id
,pi_jira_issue_key => l_jira_issue.key);
pipe row(l_jira_issue_worklog);
JSON
 transform JSON into type
 easier to use
 Transformation in package instead APEX
 testing possible by using sql
 Entities defined as column names
 documentation von
CollectionSpalte – JSON – Spaltenname im Type
 using table function based on defined types
30
processing create or replace type t_jira_issue force as object
(
-- { id: "16276"
-- c001
id number, -- Jira Issue ID
-- { self: https://jira.mt-
ag.com/rest/api/2/issue/16276
-- c003
url_json varchar2(32767), -- c003 - JSON URL
-- { key: "UITFPP-1057„
-- c001
key varchar2(32767), -- Issue Key
select *
from table(jira_rest_ws_pkg.get_projects(pi_base_url => 'https://jira.atlassian.com'))
APEX
 using APEX_COLLECTIONS
 not every search means new webservice call
 loading page doesn‘t call a webservice
 APEX itself relies also on collections when working with Web Service References
 problem authentication for webservice call
 every call needs a username & password
 using Web Service Reference it‘s inconvenient
 using Application Items instead
 when logging into the apex application password is saved on server-side by application item
 attention the password value is visible in session state
31
APEX
32
Livedemo
Conclusion
 complexity is huge because of many different technical aspects
 all important key facts are calculateable
 transforming JSON in JavaScript or PL/SQL is not easy in the beginning
 first time parsing JSON even with APEX_JSON needs practice
remember in 12c you can directly parse JSON by SQL
 Using APEX integrated „Web Service Reference“ only for simple examples
33
@OliverLemm
http://oliverlemm.blogspot.de/
http://de.linkedin.com/in/OliverLemm
https://www.xing.com/profile/Oliver_Lemm
Thanks!

Contenu connexe

Tendances

Er and data flow diagram
Er and data flow diagramEr and data flow diagram
Er and data flow diagramAnjali Balan
 
Project Result PowerPoint Presentation Slides
Project Result PowerPoint Presentation Slides Project Result PowerPoint Presentation Slides
Project Result PowerPoint Presentation Slides SlideTeam
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & DevelopmentAshok Pundit
 
3 months telecom training with guaranteed placement
3 months telecom training with guaranteed placement3 months telecom training with guaranteed placement
3 months telecom training with guaranteed placementBikas Singh
 
Tourism and travelling management System
Tourism and travelling management SystemTourism and travelling management System
Tourism and travelling management SystemMoeenuddin Patel
 
Salesforce Service Cloud Training | Salesforce Training For Beginners - Servi...
Salesforce Service Cloud Training | Salesforce Training For Beginners - Servi...Salesforce Service Cloud Training | Salesforce Training For Beginners - Servi...
Salesforce Service Cloud Training | Salesforce Training For Beginners - Servi...Edureka!
 
Taxi Booking App Design & Development Company
Taxi Booking App Design & Development CompanyTaxi Booking App Design & Development Company
Taxi Booking App Design & Development CompanyMtoag Technologies
 
Passport automation system
Passport automation systemPassport automation system
Passport automation systemKoppula Sheryl
 
How to Configure Journals in Odoo 14 Community
How to Configure Journals in Odoo 14 CommunityHow to Configure Journals in Odoo 14 Community
How to Configure Journals in Odoo 14 CommunityCeline George
 
Complaint management system
Complaint management systemComplaint management system
Complaint management systemnamanbiltiwala
 
What is API - Understanding API Simplified
What is API - Understanding API SimplifiedWhat is API - Understanding API Simplified
What is API - Understanding API SimplifiedJubin Aghara
 
Application of Enterprise Theory to Airbnb
Application of Enterprise Theory to AirbnbApplication of Enterprise Theory to Airbnb
Application of Enterprise Theory to AirbnbSharan Thampi J
 
Build Reliable Asynchronous Code with Queueable Apex
Build Reliable Asynchronous Code with Queueable ApexBuild Reliable Asynchronous Code with Queueable Apex
Build Reliable Asynchronous Code with Queueable ApexSalesforce Developers
 
Web Application Technical & Financial Proposal
Web Application Technical & Financial ProposalWeb Application Technical & Financial Proposal
Web Application Technical & Financial ProposalMd.Abu Taher (Rujel)
 
Co relation between dfd & event table
Co relation between dfd & event tableCo relation between dfd & event table
Co relation between dfd & event tableLaxman Puri
 

Tendances (20)

Er and data flow diagram
Er and data flow diagramEr and data flow diagram
Er and data flow diagram
 
Project Result PowerPoint Presentation Slides
Project Result PowerPoint Presentation Slides Project Result PowerPoint Presentation Slides
Project Result PowerPoint Presentation Slides
 
REST API Design & Development
REST API Design & DevelopmentREST API Design & Development
REST API Design & Development
 
3 months telecom training with guaranteed placement
3 months telecom training with guaranteed placement3 months telecom training with guaranteed placement
3 months telecom training with guaranteed placement
 
House rent system
House rent systemHouse rent system
House rent system
 
Salesforce Lightning workshop
Salesforce Lightning workshopSalesforce Lightning workshop
Salesforce Lightning workshop
 
Tourism and travelling management System
Tourism and travelling management SystemTourism and travelling management System
Tourism and travelling management System
 
Salesforce Service Cloud Training | Salesforce Training For Beginners - Servi...
Salesforce Service Cloud Training | Salesforce Training For Beginners - Servi...Salesforce Service Cloud Training | Salesforce Training For Beginners - Servi...
Salesforce Service Cloud Training | Salesforce Training For Beginners - Servi...
 
Online event management system
Online event management systemOnline event management system
Online event management system
 
Taxi Booking App Design & Development Company
Taxi Booking App Design & Development CompanyTaxi Booking App Design & Development Company
Taxi Booking App Design & Development Company
 
Passport automation system
Passport automation systemPassport automation system
Passport automation system
 
How to Configure Journals in Odoo 14 Community
How to Configure Journals in Odoo 14 CommunityHow to Configure Journals in Odoo 14 Community
How to Configure Journals in Odoo 14 Community
 
Complaint management system
Complaint management systemComplaint management system
Complaint management system
 
What is API - Understanding API Simplified
What is API - Understanding API SimplifiedWhat is API - Understanding API Simplified
What is API - Understanding API Simplified
 
Application of Enterprise Theory to Airbnb
Application of Enterprise Theory to AirbnbApplication of Enterprise Theory to Airbnb
Application of Enterprise Theory to Airbnb
 
Build Reliable Asynchronous Code with Queueable Apex
Build Reliable Asynchronous Code with Queueable ApexBuild Reliable Asynchronous Code with Queueable Apex
Build Reliable Asynchronous Code with Queueable Apex
 
Web Application Technical & Financial Proposal
Web Application Technical & Financial ProposalWeb Application Technical & Financial Proposal
Web Application Technical & Financial Proposal
 
Co relation between dfd & event table
Co relation between dfd & event tableCo relation between dfd & event table
Co relation between dfd & event table
 
Salesforce project
Salesforce projectSalesforce project
Salesforce project
 
Salesforce
Salesforce Salesforce
Salesforce
 

En vedette

20160307 apex connects_jira
20160307 apex connects_jira20160307 apex connects_jira
20160307 apex connects_jiraMT AG
 
Service Workers and APEX
Service Workers and APEXService Workers and APEX
Service Workers and APEXDimitri Gielis
 
Managing Product Growth Experiments With JIRA and Confluence - Zane Salim
Managing Product Growth Experiments With JIRA and Confluence - Zane SalimManaging Product Growth Experiments With JIRA and Confluence - Zane Salim
Managing Product Growth Experiments With JIRA and Confluence - Zane SalimAtlassian
 
JIRA Performance After 300,000 Issues
JIRA Performance After 300,000 IssuesJIRA Performance After 300,000 Issues
JIRA Performance After 300,000 IssuesAtlassian
 
Jira plugin dev introduction 14012014 a
Jira plugin dev introduction 14012014 aJira plugin dev introduction 14012014 a
Jira plugin dev introduction 14012014 alukasgotter
 
Moving to the APEX Listener
Moving to the APEX ListenerMoving to the APEX Listener
Moving to the APEX ListenerDimitri Gielis
 
How to make APEX print through Node.js
How to make APEX print through Node.jsHow to make APEX print through Node.js
How to make APEX print through Node.jsDimitri Gielis
 
Agile Overview Session
Agile Overview SessionAgile Overview Session
Agile Overview SessionBahaa Farouk
 
Using JIRA & Greenhopper for Agile Development
Using JIRA & Greenhopper for Agile DevelopmentUsing JIRA & Greenhopper for Agile Development
Using JIRA & Greenhopper for Agile DevelopmentJeff Leyser
 
JIRA-An intro
JIRA-An introJIRA-An intro
JIRA-An introAsha G.K.
 
Introduction To Jira
Introduction To JiraIntroduction To Jira
Introduction To JiraHua Soon Sim
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsStormpath
 

En vedette (18)

20160307 apex connects_jira
20160307 apex connects_jira20160307 apex connects_jira
20160307 apex connects_jira
 
Jira
JiraJira
Jira
 
Service Workers and APEX
Service Workers and APEXService Workers and APEX
Service Workers and APEX
 
Managing Product Growth Experiments With JIRA and Confluence - Zane Salim
Managing Product Growth Experiments With JIRA and Confluence - Zane SalimManaging Product Growth Experiments With JIRA and Confluence - Zane Salim
Managing Product Growth Experiments With JIRA and Confluence - Zane Salim
 
JIRA Performance After 300,000 Issues
JIRA Performance After 300,000 IssuesJIRA Performance After 300,000 Issues
JIRA Performance After 300,000 Issues
 
Jira plugin dev introduction 14012014 a
Jira plugin dev introduction 14012014 aJira plugin dev introduction 14012014 a
Jira plugin dev introduction 14012014 a
 
Moving to the APEX Listener
Moving to the APEX ListenerMoving to the APEX Listener
Moving to the APEX Listener
 
APEX Security 101
APEX Security 101APEX Security 101
APEX Security 101
 
Jira Agile
Jira AgileJira Agile
Jira Agile
 
APEX Wearables
APEX WearablesAPEX Wearables
APEX Wearables
 
How to make APEX print through Node.js
How to make APEX print through Node.jsHow to make APEX print through Node.js
How to make APEX print through Node.js
 
Agile Overview Session
Agile Overview SessionAgile Overview Session
Agile Overview Session
 
Using JIRA & Greenhopper for Agile Development
Using JIRA & Greenhopper for Agile DevelopmentUsing JIRA & Greenhopper for Agile Development
Using JIRA & Greenhopper for Agile Development
 
JIRA-An intro
JIRA-An introJIRA-An intro
JIRA-An intro
 
RESTful API Design, Second Edition
RESTful API Design, Second EditionRESTful API Design, Second Edition
RESTful API Design, Second Edition
 
Introduction To Jira
Introduction To JiraIntroduction To Jira
Introduction To Jira
 
Design Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIsDesign Beautiful REST + JSON APIs
Design Beautiful REST + JSON APIs
 
Project Management KPIs
Project Management KPIsProject Management KPIs
Project Management KPIs
 

Similaire à APEX connects Jira

Building applications with Serverless Framework and AWS Lambda
Building applications with Serverless Framework and AWS LambdaBuilding applications with Serverless Framework and AWS Lambda
Building applications with Serverless Framework and AWS LambdaFredrik Vraalsen
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performanceEngine Yard
 
Working with data using Azure Functions.pdf
Working with data using Azure Functions.pdfWorking with data using Azure Functions.pdf
Working with data using Azure Functions.pdfStephanie Locke
 
PyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdfPyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdfJim Dowling
 
Data analytics master class: predict hotel revenue
Data analytics master class: predict hotel revenueData analytics master class: predict hotel revenue
Data analytics master class: predict hotel revenueKris Peeters
 
2019-05-16 aOS Luxembourg - 6 - Flow avancé - Serge Luca
2019-05-16 aOS Luxembourg - 6 - Flow avancé - Serge Luca2019-05-16 aOS Luxembourg - 6 - Flow avancé - Serge Luca
2019-05-16 aOS Luxembourg - 6 - Flow avancé - Serge LucaaOS Community
 
Doctor Flow: Enterprise Flows best practices - patterns (SharePoint Saturday...
Doctor Flow:  Enterprise Flows best practices - patterns (SharePoint Saturday...Doctor Flow:  Enterprise Flows best practices - patterns (SharePoint Saturday...
Doctor Flow: Enterprise Flows best practices - patterns (SharePoint Saturday...serge luca
 
SharePoint for the .NET Developer
SharePoint for the .NET DeveloperSharePoint for the .NET Developer
SharePoint for the .NET DeveloperJohn Calvert
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextPrateek Maheshwari
 
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and Nagios
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and NagiosNagios Conference 2013 - Eric Stanley and Andy Brist - API and Nagios
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and NagiosNagios
 
Visualizing Big Data in Realtime
Visualizing Big Data in RealtimeVisualizing Big Data in Realtime
Visualizing Big Data in RealtimeDataWorks Summit
 
GE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoTGE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoTKai Zhao
 
Doctor Flow- Best practices Microsoft flow - Techorama 2019
Doctor Flow- Best practices Microsoft flow - Techorama 2019Doctor Flow- Best practices Microsoft flow - Techorama 2019
Doctor Flow- Best practices Microsoft flow - Techorama 2019serge luca
 
MuleSoft London Community February 2020 - MuleSoft and OData
MuleSoft London Community February 2020 - MuleSoft and ODataMuleSoft London Community February 2020 - MuleSoft and OData
MuleSoft London Community February 2020 - MuleSoft and ODataPace Integration
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
 
Maximizer 2018 API training
Maximizer 2018 API trainingMaximizer 2018 API training
Maximizer 2018 API trainingMurylo Batista
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien
 

Similaire à APEX connects Jira (20)

Building applications with Serverless Framework and AWS Lambda
Building applications with Serverless Framework and AWS LambdaBuilding applications with Serverless Framework and AWS Lambda
Building applications with Serverless Framework and AWS Lambda
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
 
Bh Win 03 Rileybollefer
Bh Win 03 RileybolleferBh Win 03 Rileybollefer
Bh Win 03 Rileybollefer
 
Working with data using Azure Functions.pdf
Working with data using Azure Functions.pdfWorking with data using Azure Functions.pdf
Working with data using Azure Functions.pdf
 
PyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdfPyData Berlin 2023 - Mythical ML Pipeline.pdf
PyData Berlin 2023 - Mythical ML Pipeline.pdf
 
Data analytics master class: predict hotel revenue
Data analytics master class: predict hotel revenueData analytics master class: predict hotel revenue
Data analytics master class: predict hotel revenue
 
2019-05-16 aOS Luxembourg - 6 - Flow avancé - Serge Luca
2019-05-16 aOS Luxembourg - 6 - Flow avancé - Serge Luca2019-05-16 aOS Luxembourg - 6 - Flow avancé - Serge Luca
2019-05-16 aOS Luxembourg - 6 - Flow avancé - Serge Luca
 
Doctor Flow: Enterprise Flows best practices - patterns (SharePoint Saturday...
Doctor Flow:  Enterprise Flows best practices - patterns (SharePoint Saturday...Doctor Flow:  Enterprise Flows best practices - patterns (SharePoint Saturday...
Doctor Flow: Enterprise Flows best practices - patterns (SharePoint Saturday...
 
SharePoint for the .NET Developer
SharePoint for the .NET DeveloperSharePoint for the .NET Developer
SharePoint for the .NET Developer
 
Scale By The Bay | 2020 | Gimel
Scale By The Bay | 2020 | GimelScale By The Bay | 2020 | Gimel
Scale By The Bay | 2020 | Gimel
 
Apache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's NextApache Samza 1.0 - What's New, What's Next
Apache Samza 1.0 - What's New, What's Next
 
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and Nagios
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and NagiosNagios Conference 2013 - Eric Stanley and Andy Brist - API and Nagios
Nagios Conference 2013 - Eric Stanley and Andy Brist - API and Nagios
 
Visualizing Big Data in Realtime
Visualizing Big Data in RealtimeVisualizing Big Data in Realtime
Visualizing Big Data in Realtime
 
GE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoTGE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoT
 
Doctor Flow- Best practices Microsoft flow - Techorama 2019
Doctor Flow- Best practices Microsoft flow - Techorama 2019Doctor Flow- Best practices Microsoft flow - Techorama 2019
Doctor Flow- Best practices Microsoft flow - Techorama 2019
 
Resume (1)
Resume (1)Resume (1)
Resume (1)
 
MuleSoft London Community February 2020 - MuleSoft and OData
MuleSoft London Community February 2020 - MuleSoft and ODataMuleSoft London Community February 2020 - MuleSoft and OData
MuleSoft London Community February 2020 - MuleSoft and OData
 
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien - Modern SharePoint development: techniques for moving code off...
Chris O'Brien - Modern SharePoint development: techniques for moving code off...
 
Maximizer 2018 API training
Maximizer 2018 API trainingMaximizer 2018 API training
Maximizer 2018 API training
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
 

Plus de Oliver Lemm

Qualitätssicherung für APEX Anwendungen.pdf
Qualitätssicherung für APEX Anwendungen.pdfQualitätssicherung für APEX Anwendungen.pdf
Qualitätssicherung für APEX Anwendungen.pdfOliver Lemm
 
Qualitätsstandards in der Datenbankentwicklung.pdf
Qualitätsstandards in der Datenbankentwicklung.pdfQualitätsstandards in der Datenbankentwicklung.pdf
Qualitätsstandards in der Datenbankentwicklung.pdfOliver Lemm
 
APEX Page Items in detail
APEX Page Items in detailAPEX Page Items in detail
APEX Page Items in detailOliver Lemm
 
APEX richtig installieren und konfigurieren
APEX richtig installieren und konfigurierenAPEX richtig installieren und konfigurieren
APEX richtig installieren und konfigurierenOliver Lemm
 
Jenkins Pipelines Advanced
Jenkins Pipelines AdvancedJenkins Pipelines Advanced
Jenkins Pipelines AdvancedOliver Lemm
 
Das Universal Theme in APEX 19
Das Universal Theme in APEX 19Das Universal Theme in APEX 19
Das Universal Theme in APEX 19Oliver Lemm
 
Jenkins Pipeline meets Oracle
Jenkins Pipeline meets OracleJenkins Pipeline meets Oracle
Jenkins Pipeline meets OracleOliver Lemm
 
REST mit APEX 18.1
REST mit APEX 18.1REST mit APEX 18.1
REST mit APEX 18.1Oliver Lemm
 
Schritt für Schritt ins Grid
Schritt für Schritt ins GridSchritt für Schritt ins Grid
Schritt für Schritt ins GridOliver Lemm
 
Migration ins Universal Theme 1.1
Migration ins Universal Theme 1.1Migration ins Universal Theme 1.1
Migration ins Universal Theme 1.1Oliver Lemm
 
Mastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union InvestmentMastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union InvestmentOliver Lemm
 
Mastering Universal Theme with corporate design from union investment
Mastering Universal Theme with corporate design from union investmentMastering Universal Theme with corporate design from union investment
Mastering Universal Theme with corporate design from union investmentOliver Lemm
 
Jetlag - Oracle Jet und APEX
Jetlag - Oracle Jet und APEXJetlag - Oracle Jet und APEX
Jetlag - Oracle Jet und APEXOliver Lemm
 
Wieder verschätzt?
Wieder verschätzt?Wieder verschätzt?
Wieder verschätzt?Oliver Lemm
 
Komplexe Daten mit Oracle Jet einfach aufbereitet
Komplexe Daten mit Oracle Jet einfach aufbereitetKomplexe Daten mit Oracle Jet einfach aufbereitet
Komplexe Daten mit Oracle Jet einfach aufbereitetOliver Lemm
 
Mastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union InvestmentMastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union InvestmentOliver Lemm
 
Echtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & CoEchtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & CoOliver Lemm
 

Plus de Oliver Lemm (20)

Qualitätssicherung für APEX Anwendungen.pdf
Qualitätssicherung für APEX Anwendungen.pdfQualitätssicherung für APEX Anwendungen.pdf
Qualitätssicherung für APEX Anwendungen.pdf
 
Qualitätsstandards in der Datenbankentwicklung.pdf
Qualitätsstandards in der Datenbankentwicklung.pdfQualitätsstandards in der Datenbankentwicklung.pdf
Qualitätsstandards in der Datenbankentwicklung.pdf
 
APEX Page Items in detail
APEX Page Items in detailAPEX Page Items in detail
APEX Page Items in detail
 
confirm & alert
confirm & alertconfirm & alert
confirm & alert
 
APEX richtig installieren und konfigurieren
APEX richtig installieren und konfigurierenAPEX richtig installieren und konfigurieren
APEX richtig installieren und konfigurieren
 
APEX Migration
APEX MigrationAPEX Migration
APEX Migration
 
Jenkins Pipelines Advanced
Jenkins Pipelines AdvancedJenkins Pipelines Advanced
Jenkins Pipelines Advanced
 
From Dev to Ops
From Dev to OpsFrom Dev to Ops
From Dev to Ops
 
Das Universal Theme in APEX 19
Das Universal Theme in APEX 19Das Universal Theme in APEX 19
Das Universal Theme in APEX 19
 
Jenkins Pipeline meets Oracle
Jenkins Pipeline meets OracleJenkins Pipeline meets Oracle
Jenkins Pipeline meets Oracle
 
REST mit APEX 18.1
REST mit APEX 18.1REST mit APEX 18.1
REST mit APEX 18.1
 
Schritt für Schritt ins Grid
Schritt für Schritt ins GridSchritt für Schritt ins Grid
Schritt für Schritt ins Grid
 
Migration ins Universal Theme 1.1
Migration ins Universal Theme 1.1Migration ins Universal Theme 1.1
Migration ins Universal Theme 1.1
 
Mastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union InvestmentMastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union Investment
 
Mastering Universal Theme with corporate design from union investment
Mastering Universal Theme with corporate design from union investmentMastering Universal Theme with corporate design from union investment
Mastering Universal Theme with corporate design from union investment
 
Jetlag - Oracle Jet und APEX
Jetlag - Oracle Jet und APEXJetlag - Oracle Jet und APEX
Jetlag - Oracle Jet und APEX
 
Wieder verschätzt?
Wieder verschätzt?Wieder verschätzt?
Wieder verschätzt?
 
Komplexe Daten mit Oracle Jet einfach aufbereitet
Komplexe Daten mit Oracle Jet einfach aufbereitetKomplexe Daten mit Oracle Jet einfach aufbereitet
Komplexe Daten mit Oracle Jet einfach aufbereitet
 
Mastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union InvestmentMastering Universal Theme with corporate design from Union Investment
Mastering Universal Theme with corporate design from Union Investment
 
Echtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & CoEchtzeitvisualisierung von Twitter & Co
Echtzeitvisualisierung von Twitter & Co
 

Dernier

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 

Dernier (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 

APEX connects Jira

  • 1. APEX connects Jira Oliver Lemm APEX World 07.03.2016
  • 2. Facts & Figures Independent Technology House with Cross-Industry Expertise Headquarter Ratingen (North Rhine – Westphalia) 240 Employees Founded 1994 Branches Dortmund, Cologne, Frankfurt Top Company for Trainees & Students Privately- Owned Corporation Oracle Platinum Partner 24 Mio. Euro Revenue 2
  • 3. about me  Oliver Lemm  since february 2007 working for MT AG in Ratingen  Junior Consultant > Consultant > Senior Consultant > Competence Center Leader APEX & Service Center Leader APEX  Diploma applied computer science at the university of Duisburg-Essen  Projectleader, IT-Architect and Developer  working with Oracle Databases and Oracle Application Express since 2007  Blog http://oliverlemm.blogspot.de  Twitter https://twitter.com/OliverLemm 3
  • 4. APEX Connect 26th – 28th April 2016 in Berlin Get your early-bird ticket now! APEX.DOAG.ORG#APEXCONN16
  • 5. Agenda 1. Motivation 2. Jira 3. Webservices 4. JSON 5. Livedemo 5
  • 6. Motivation „Working with one tool to handle the developing process, controlling and all other processes in one project“ „Calculating key figures based on Jira values which are not delivered by Jira itself.“ „Using integrated Jira Plugins and adding additional functionality by using APEX as known technology“ 6 requirements
  • 7. Jira  https://www.atlassian.com/JIRA  Issue tracking and code integration  Supporting Dashboards & Plugins  perfect integration from Confluence (wiki) and Subversion (versioning)  supporting complex workflows  Issue import from Bugzilla, Mantis, GitHub, …  Supporting von REST-Webservices 7
  • 8. 8
  • 10. Jira  supporting a huge number of attributes  time tracking (estimated, time spent, remaining)  Components (can be used for APEX pages and database objects)  versions  fields and screens adjustable per project  external issue numbers, date of commision, date of payment  Supporting own workflows  Describing a whole process, usable for non developing processes  Every step can be defined by user rights or issue dependencies  Using „JIRA Timesheet Reports and Gadgets Plugin“ 10 Integrated features
  • 11. Jira  key figures not in desired aggregation  time per year/month  no further support for SOAP Webservices in Jira  SOAP Interface doesn‘t return all values  Using Jira-Plugins  Listed Plugins not fullfilling all requiremends  Developing own Jira-Plugins is complex and time consuming 11 lack of features
  • 12. Jira  API documentation for Jira REST-Webservices https://docs.atlassian.com/jira/REST/latest/  URL structure  http://host:port/context/rest/api-name/api-version/resource-name  Using an issue identfiied by the key JRA-9 would be like:  https://jira.atlassian.com/rest/api/latest/issue/JRA-9  Using JQL Language (syntax) https://jira.mt-ag.com/rest/api/2/search?jql=project=BP  Returning values in JSON Format (testable also in browser) 12 REST-Webservice
  • 14. Jira  addional information when getting REST-Webservice Result  Default max 50 entries  1. solution: add parameter &maxResults=XXX  2. solution: add Parameter &startAt=50  Sort the results  If no Authentication needed, don‘t submit username/password -> you get Unauthorized (401) 14 REST-Webservice "expand":"schema,names","startAt":0,"maxResults":50,"total":827,"issues":[….]} https://jira.mt-ag.com/rest/api/latest/search?jql=project=BP&maxResults=1000 https://jira.mt-ag.com/rest/api/latest/search?jql=project=BP&startAt=50 https://jira.mt-ag.com/rest/api/latest/search?jql=project=BP+order+by+duedate
  • 15. Webservices  getting Error:  Example: https://jira.atlassian.com/rest/api/latest/issue/JRA-9 15 ACL ORA-29273: HTTP request failed ORA-24247: network access denied by access control list (ACL) begin dbms_network_acl_admin.create_acl(acl => 'jira.atlassian.com.xml' ,description => 'An ACL for Calling REST Webservices.' ,principal => l_principal ,is_grant => true ,privilege => 'connect' ,start_date => systimestamp ,end_date => null); dbms_network_acl_admin.assign_acl(acl => 'jira.atlassian.com.xml' ,host => 'jira.atlassian.com' ,lower_port => 443 ,upper_port => 443); commit; end;
  • 16. Webservices  Getting existing ACL Entries  Important for ACL  Using Web Service References (shared components or the APEX_WEB_SERVICE (package)  principal = APEX_050000  using utl_http or other packages calling external resources  principal = my_schema_name 16 ACL select a.acl ,a.host ,a.lower_port ,a.upper_port ,p.principal ,p.privilege ,p.is_grant ,to_char(p.start_date ,'DD-MON-YYYY') as start_date ,to_char(p.end_date ,'DD-MON-YYYY') as end_date from dba_network_acl_privileges p left join dba_network_acls a on a.acl = p.acl
  • 18. Webservices  calling https:  To solve this problem, you have to get the certificates which are used by the server which runs Jira  Getting certificate  use your browser and call the URL from the REST-Webservice or even from Jira  click on the lock symbol  click show certificate 18 exporting certificate ORA-29273: HTTP request failed ORA-29024: Certificate validation failure
  • 20. Webservices  use the Oracle Wallet Manager (OWM) to import the certificate  run ORACLE_HOMEbinowm.cl (on windows a link is created)  Import of the certificate is also possible using the command line  create a wallet for the certificate using a path like this ORACLE_BASEadmin<SID><name_wallet>  Use automatic login for your wallet (otherwise you have to use the wallet always with your password in your plsql code) 20 importing certificate
  • 21. Webservice  APEX documentation http://docs.oracle.com/cd/E59726_01/doc.50/e39151/adm_wrkspc002.htm#BABHEHAG  Login into your INTERNAL Workspace Manage Instance Instance Settings Wallet 21 certificate in APEX
  • 22. Webservices  Shared Components  Web Service References  Create  Problems  based on single items  authentification  result as CLOB only in Collection. No support in  apex_items  report columns  JSON Format 23 Web Service Reference
  • 24. Webservice  Call REST  p_http_method GET, HEAD, POST, PUT, DELETE  Username & Password supporting Basic Authentication  Parameter if parameter beside the URL itself are needed 25 APEX_WEB_SERVICE l_clob := apex_web_service.make_rest_request( p_url => 'https://jira.atlassian.com/rest/api/latest/issue/JRA-9' ,p_http_method => 'GET' ,p_wallet_path => 'file:C:oracleadminorclmein_wallet' ,p_username => 'lemmo' ,p_password => '123456 '‚ ,p_parm_name => apex_util.string_to_table('param1:param2'), ,p_parm_value => apex_util.string_to_table('val1:val2') );
  • 25. JSON  Datentypen  String  "QS - Demo Feature"  "2015-11-03T13:48:16.630+0100"  Number  20  Boolean  true / false  Null  null  Array  [ {…}, {…}] 26 format { "id": "17149", "self": "https://jira.mt-ag.com/rest/api/latest/issue/17149", "key": "BP-7", "fields": { “summary": "QS - Demo Feature", "progress": { "progress": ​19800, "total": ​19800, "percent": ​100 }, "created": "2015-11-03T13:48:16.630+0100", worklog": { "startAt": ​0, "maxResults": ​20, "total": ​2, "worklogs": [ { ... }, { ... } ] } } }
  • 26. JSON  convert clob to JSON object  looping entries  get value 27 processing l_values apex_json.t_values; …. apex_json.parse(p_values => l_values ,p_source => l_clob); for i in 1 .. apex_json.get_count(p_values => l_values ,p_path => '.') loop … end loop l_jira_issue.key := apex_json.get_varchar2(p_values => pi_json_issue ,p_path => 'key'); l_jira_issue.timespent := apex_json.get_number(p_values => pi_json_issue ,p_path => 'fields.timespent');
  • 27. JSON  Number as String  you have to convert  Datetime as String  Converting with apex_json.get_date doesn‘t work because of format  custom fields in Jira are named like customfield_xxxxx 28 special cases "id": "17149" "created": "2015-11-03T13:48:16.630+0100" l_timestamp := to_timestamp_tz(pi_string ,'YYYY-MM-DD"T"hh24:mi:ss.FF3TZHTZM'); l_string := to_char(l_timestamp ,'yyyy.mm.dd hh24:mi:ss'); l_date := to_date(l_string ,'yyyy.mm.dd hh24:mi:ss'); apex_json.get_varchar2(p_values => pi_json_issue ,p_path => 'fields.customfield_10000');
  • 28. JSON  Time worked / Worklog not with information by day encapsuleted in issue  you have call the worklog for every single ticket by one REST Call 29 special cases for i in 1 .. apex_json.get_count(p_values => l_values, p_path => 'issues') loop l_rest_response := make_rest_request(pi_url => pi_jira_base_url || c_jira_rest_base_path || '/issue/' || apex_json.get_varchar2(p_values => l_values, p_path => 'issues[' || i || '].key' ,pi_username => pi_username ,pi_password => pi_password); apex_json.parse(p_values => l_values_issue, p_source => l_rest_response); l_jira_issue := get_issue_from_json(pi_json_issue => l_values_issue); for j in 1 .. apex_json.get_count(p_values => l_values_issue ,p_path => 'fields.worklog.worklogs') loop l_jira_issue_worklog := get_issue_worklog_from_json(pi_json_issue_worklog => l_values_issue ,pi_path => 'fields.worklog.worklogs[' || j || '].' ,pi_jira_issue_id => l_jira_issue.id ,pi_jira_issue_key => l_jira_issue.key); pipe row(l_jira_issue_worklog);
  • 29. JSON  transform JSON into type  easier to use  Transformation in package instead APEX  testing possible by using sql  Entities defined as column names  documentation von CollectionSpalte – JSON – Spaltenname im Type  using table function based on defined types 30 processing create or replace type t_jira_issue force as object ( -- { id: "16276" -- c001 id number, -- Jira Issue ID -- { self: https://jira.mt- ag.com/rest/api/2/issue/16276 -- c003 url_json varchar2(32767), -- c003 - JSON URL -- { key: "UITFPP-1057„ -- c001 key varchar2(32767), -- Issue Key select * from table(jira_rest_ws_pkg.get_projects(pi_base_url => 'https://jira.atlassian.com'))
  • 30. APEX  using APEX_COLLECTIONS  not every search means new webservice call  loading page doesn‘t call a webservice  APEX itself relies also on collections when working with Web Service References  problem authentication for webservice call  every call needs a username & password  using Web Service Reference it‘s inconvenient  using Application Items instead  when logging into the apex application password is saved on server-side by application item  attention the password value is visible in session state 31
  • 32. Conclusion  complexity is huge because of many different technical aspects  all important key facts are calculateable  transforming JSON in JavaScript or PL/SQL is not easy in the beginning  first time parsing JSON even with APEX_JSON needs practice remember in 12c you can directly parse JSON by SQL  Using APEX integrated „Web Service Reference“ only for simple examples 33

Notes de l'éditeur

  1. From April 26th to 28th, 2016, the second edition of APEX Connect will take place in Berlin. Due to the positive feedback this year, there will be an extra day: The conference will be three days long. April 26th: Focus on PL/SQL April 27th - 28th: Full range of APEX programming There will again be many great submissions and topics. Main topics Project Management & Methods Operation Web technology Application Development The conference program is in completion and will be released in spring. The top speaker of the PL/SQL and APEX scene will be there. David Peake Patrick Wolf Anton Nielsen Martin Giffy D'Souza Roger Troller Jürgen Sieben Olaf Jessensky Chris Saxon In addition to the lecture program, the following activities are planned: Workshops Unconference sessions Many networking opportunities At the moment, the early bird prices still apply. The sale of the exhibition is already running.  
  2. APE