Anda di halaman 1dari 30

CAMPUSMOBILEIMPLEMENTATIONGUIDE

TableofContents
1. Background......................................................................................................................................................................................5
1.1 Introduction...........................................................................................................................................................................5
1.2 OverviewofCampusMobile............................................................................................................................................5
1.3 OverviewofADFMobile....................................................................................................................................................6
2. CampusSolutions........................................................................................................................................................................10
2.1 CampusSolutionsConfiguration.................................................................................................................................10
2.2 IntegrationBrokerConfiguration...............................................................................................................................10
2.3 SecurityConfiguration.....................................................................................................................................................10
2.3.1 AuthenticationService...........................................................................................................................................10

2.3.2 AuthorizationService.............................................................................................................................................11

2.4 AbouttheEntityRegistry...............................................................................................................................................11
2.4.1 EntityProfiles............................................................................................................................................................11

2.5 ConfiguringNotifications................................................................................................................................................11
2.5.1 Framework..................................................................................................................................................................11

2.5.2 Consumers...................................................................................................................................................................12

2.5.3 Templates....................................................................................................................................................................13

2.5.4 Preferences.................................................................................................................................................................14

2.6 MessageCatalogConsiderations..................................................................................................................................14
3. CampusMobile.............................................................................................................................................................................16
3.1 Overview................................................................................................................................................................................16
3.2 UsingJDeveloper................................................................................................................................................................16
3.2.1 InstallingandSettingupJDeveloper................................................................................................................16

3.2.2 CreatingaNewMobileApplicationFromtheDeliveredMobileApplicationArchiveFile........17

3.3 ConfiguringYourMobileApplication........................................................................................................................17
3.3.1 WebServices..............................................................................................................................................................17

3.3.2 Security.........................................................................................................................................................................18

3.3.3 Properties....................................................................................................................................................................19

3.3.4 CurrencySymbols....................................................................................................................................................19
3.4 BrandingYourMobileApplication.............................................................................................................................19
3.4.1 ChangingtheApplicationID................................................................................................................................20

3.4.2 ChangingtheApplicationName.........................................................................................................................20

3.4.3 ChangingtheApplicationIcon............................................................................................................................20

3.4.4 InsertingYourLogo.................................................................................................................................................21

3.4.5 InsertingYourColorScheme...............................................................................................................................21

3.4.6 InsertingYourAppInfo.........................................................................................................................................22

3.4.7 InsertingYourAppURLScheme........................................................................................................................22

3.4.8 MaintainingTheAppVersion..............................................................................................................................22

3.5 CustomizingYourMobileApplication.......................................................................................................................23
3.5.1 CustomizingtheLoginPage.................................................................................................................................23

3.5.2 CustomizingtheSpringboardandNavigationBar.....................................................................................23

3.5.3 CustomizingtheAppFeatures............................................................................................................................23

3.5.4 MapsIntegration.......................................................................................................................................................24

3.5.5 Icons,Labels,ResourceBundlesandLocalization......................................................................................25

3.5.6 CustomizingtheGenericErrorMessage.........................................................................................................25

3.5.7 CustomizingPagesWithintheApp...................................................................................................................25

3.5.8 CustomizingtheAndroidAppPermissions...................................................................................................26

3.6 ExtendingYourMobileApplication............................................................................................................................26
3.6.1 ProvidingAdditionalMapFunctionality.........................................................................................................26

3.6.2 ChangingtheDisplayedData...............................................................................................................................26

3.6.3 ProvidingAdditionalfeatures.............................................................................................................................27

3.7 ManagingYourMobileApplication............................................................................................................................27
3.7.1 DevelopingYourMobileApplication................................................................................................................27

3.7.2 DeployingYourMobileApplication..................................................................................................................28

3.7.3 TestingandDebuggingYourMobileApplication........................................................................................28

3.7.4 DistributingYourMobileApplication..............................................................................................................29
3.7.5 SupportingYourMobileApplication................................................................................................................29

Figure11ADFMobileRuntimeArchitecture.............................................................................................................................7
Figure31ApplicationNavigator...................................................................................................................................................17

1. BACKGROUND
1.1 INTRODUCTION
CampusMobileisanewstudentselfserviceinterfacedesignedforsmartphonedevices.Itis
deliveredaspartofCampusSolutionsSelfServiceandisdeployedasaniOSorAndroidapplication.
Theapplicationenablesstudentstohaveconstantaccesstohighvaluetransactions.

Thisdocumentprovidesimplementerswiththeinformationrequiredto:

ConfigureyourexistingCampusSolutionsenvironment(s)tofacilitatemobileaccess.Refer
tochapter2.
Configure,brand,customizeandextendthedeliveredCampusMobileapplicationarchivein
ordertocreateanddistributeamobileapplicationthatistailoredtotheneedsofyour
studentsandorganization.Refertochapter3.

Readersshouldprogressthroughthisdocumentinthechapterorder,sincelaterchaptersrequire
knowledgeofinformationdescribedinearlierchapters.

Multiplepiecesofdocumentationhavebeendevelopedorupdatedtoassistintheimplementation
effort.

SeeCampusMobileDocumentation,onMyOracleSupport

SeeWorkingWiththeNotificationsFramework,partofCS_Bundle_29_Campus_Community_9_0.pdf
onMyOracleSupport

SeePeopleSoftCampusCommunityFundamentals9.0PeopleBook,SettingUpEntityRegistry

1.2 OVERVIEWOFCAMPUSMOBILE
CampusMobileisbuiltusingOraclesADFMobileframework,whichenablesdeploymenttoboth
iOSandAndroidasanativeapplication.

Theapplicationfeatureshighvaluetransactionstowhichstudentsdesiretohaveconstant,always
availableaccess.FeaturesofCampusMobileincludetheabilityto:viewclassschedule,viewgrades,
viewfinances,viewtodolist,viewholds,viewscheduleofclasses,enrollinclasses,andmanagethe
enrollmentshoppingcart.

TheCampusMobilesmartphoneapplicationisasecure,simplified,andpersonalizedplatformfor
studentstoconductkeyCampusSelfServiceprocesses.Youcanconfigure,brand,customizeand
extendtheCampusmobileapplicationtosuityourrequirements.

CampusMobileusesthedeliveredCampusSolutionswebservicestoproviderealtimereadand
writeaccesstodatawithinCampusSolutions.ForCampusMobile,RESTfulversionsoftheweb
servicesaredeployed,leveragingPeopleTools8.52functionality.RESTfulwebservicesrequire
loweroverheadthanSOAPbasedservices,thusloweringthebandwidthrequirementfordelivering

OracleCorporationConfidentialForOracleinternaluseonly Page5

datatoamobiledevice.Tooptimizethewebserviceperformance,CampusMobiletakesadvantage
oftheEntityProfilingfeaturenewtoCampusSolutions.EntityProfilegivesustheabilitytocreate
anduseamobileprofilethatlimitstheamountofdatadeliveredinthewebservicepayloadtothe
subsetofdatathatCampusMobileneeds;furtherloweringthebandwidthrequirementfor
deliveringdatatoamobiledevice.

InparalleltoCampusMobile,theCampusSolutionsNotificationFrameworkprovidesproactive
communicationtostudentsandenhancesthestudentmobileexperience.CampusMobileenables
studentstomanagehowtheyreceivenotifications.

Note:CertainnotificationsaredescribedinCampusMobiledocumentation,butCampusMobileisnot
necessarilyaprerequisitetotheimplementationofthesenotifications.Thesenotificationsenhance
themobileexperienceforstudentsandprovideproactiveinformationfromCampusSolutionsandthus
theyhavebeendevelopedparalleltoCampusMobile.

1.3 OVERVIEWOFADFMOBILE
TheOracleApplicationDevelopmentFramework(OracleADF)isanendtoendJavaenterprise
frameworkthatsimplifiesapplicationdevelopmentbyprovidingoutoftheboxinfrastructure
servicesandavisualanddeclarativedevelopmentexperience.

ADFMobileextendsOracleADF,enablingyoutocreateanapplicationthatcanhousedifferent
typesofcontentandrunsonmobiledevicespoweredbytheiOSandAndroidplatforms.Withinthe
application,thecontainedfunctionalareasarereferredtoas applicationfeatures andrepresent
oneormorespecificpiecesoftheapplication'sfunctionality.

AnextensionofApacheCordova(see http://cordova.apache.org),theADFMobilearchitecture
enablesHTML5,aswellasADFdefinedpagesandtaskflowstoberenderedinthesame
downloadableapplication.

ADFMobileconsistsofthefollowingparts:

Model providedbyOracleADF.
View expressedasHTMLorXML.
Controller definedwithXML.
Java runtime poweredbyanembeddedJavaVMbundledwitheachapplication.

Figure11showstheoverallruntimearchitectureofADFMobile.

OracleCorporationConfidentialForOracleinternaluseonly Page6

Figure11ADFMobileRuntimeArchitecture

ThefollowingelementscomprisetheADFMobileruntimearchitecture:

Device-Native Container representsanapplicationcontainer,ortemplate,compiledas


adevicenativeapplicationbinary.Thiscontainerprovidestheruntimeenvironmentforan
ADFMobileapplicationtorunasanondevice,nativeapplicationinthemobiledevice's
operatingsystem(iOSorAndroid).BesideshostingtheclientsidecomponentsforanADF
Mobileapplication,itprovidesnavigationutilities,suchasaspringboardandnavigation
bar,whichenableaccesstoparticularapplicationfeatures.
Web View isapartoftheDeviceNativeContainerthatusesamobiledevice'swebengine
todisplayandprocesswebbasedcontent.InanADFMobileapplication,thewebviewisthe
primarymechanismtorenderanddelivertheapplicationuserinterface.
Server HTML representsawebbaseduserinterfacethatisgeneratedontheserverand
deliveredasawebpagetotheADFMobileapplication.TheapplicationHTMLcode,
businesslogic,andpageflowlogicaregeneratedonaremoteserver.ServerHTMLcan
accessdevicenativeservices,suchasthecamera,throughtheJavaScriptAPIsupportedby
Cordova,aslongasitisrunninginsideanADFMobileapplication.

OracleCorporationConfidentialForOracleinternaluseonly Page7

Note: Campus Mobile does not make use of Server HTML. All application
code is contained within the mobile application.

Local HTML representswebpagesdevelopedusingJDeveloperorthirdpartytoolsthat


aredirectlyembeddedwithinanADFMobileapplication.Thesepagesaredeliveredasa
partoftheADFMobileapplication.LocalHTMLfilescanaccessdevicenativefeatures
throughtheJavaScriptAPIssupportedbyCordova.
ADF Mobile AMX Views arebasedontheADFMobileAMXtechnologythatdeliversa
JSFlikedevelopmentexperiencetoworkingwithanHTML5baseduserinterface.ADF
MobileAMXviewsaredefinedusingUIandcodeeditorsprovidedbyJDeveloper.These
viewsareembeddedintoanADFMobileapplicationanddeployedtoamobiledevice.Atrun
time,theJavaScriptengineinthewebviewrendersADFMobileAMXviewdefinitionsinto
HTML5components.OftheimplementationapproachesprovidedbyADFMobile,
applicationfeaturesdevelopedusingtheADFMobileAMXcomponentsprovidethemost
authenticdevicenativeuserexperiencethroughtheirextensivesupportofanimationand
gestures.
ADF Controller isrepresentedbyamobileversionoftheOracleADFcontrollerthat
supportsasubsetofOracleADFtaskflowcomponentsavailabletoaserverbasedOracle
ADFapplication.BothboundedandunboundedOracleADFtaskflowsaresupported,as
wellasasubsetofeventsandscopesthataresupportedbytheserverbasedADF.
Java providesaJavaruntimeenvironmentforanADFMobileapplication.ThisJavaVirtual
Machine(JVM)isimplementedindevicenativecode,andisembedded(orcompiled)into
eachinstanceoftheADFMobileapplicationaspartofthenativeapplicationbinary.The
JVMisbasedontheJavaMEConnectedDeviceConfiguration(CDC)specification.
Managed Beans areJavaclassesthatcanbecreatedtoextendthecapabilitiesofADF
Mobile,suchasprovidingadditionalbusinesslogicforprocessingdatareturnedfromthe
server.ManagedbeansareexecutedbytheembeddedJavasupport,andthereforemust
conformtotheJavaMECDCspecifications.
ADF Model inanADFMobileapplicationsupportsasubsetofbusinesslogiccomponents
availabletoaserverbasedOracleADFapplication.ADFmodelcontainsthebindinglayer
thatconnectsthebusinesslogiccomponentswiththeuserinterface.Inaddition,thebinding
layerprovidestheexecutionlogictoinvokeRESTorSOAPbasedwebservices.
Application Configuration referstoservicesthatallowkeyapplicationconfigurationsto
bedownloadedandrefreshed.Forexample,URLendpointsforawebserviceorremoteURL
connection.Applicationconfigurationservicesdownloadtheconfigurationinformation
fromaWebDavbasedserversideservice.

Note: Campus Mobile does not make use of a remote Application


Configuration. Configuration files are contained within the mobile
application.

OracleCorporationConfidentialForOracleinternaluseonly Page8

Credential Management and Access Control referstoclientsideservicesthat


providesecurityrelatedservicesforanADFMobileapplication.Forexample,alocal
credentialstorethatsecurelycachesusercredentialstosupportanofflineauthenticationor
accesscontrolservicesthatdisplayorhideapplicationfeaturesbasedonuseraccess
privileges.
Apache Cordova (formerlyknownasPhoneGap)isanopensourcecodelibrarythat
providesacommonJavaScriptAPItoaccessvariousmobileDeviceServices,suchasthe
camera.CordovaprovidesamajorityofthedeviceservicesintegrationforanADFMobile
application.CordovaJavaScriptAPIsarefurtherabstractedasdevicedatacontrolsinthe
JDeveloperdesigntimeforADFMobileAMXbasedviews,allowingforintegrationofdevice
servicesbydragginganddroppingdatacontrolstotheirADFMobileAMXviews.
Local Data referstodatastoresthatresideonthedevice.InADFMobile,theseare
implementedasencryptedSQLitedatabases.CreateRetrieveUpdateDelete(CRUD)
operationsaresupportedtothislocaldatastorethroughtheJavalayer,usingJDBCbased
APIs.
Ontheserverside,the Configuration Server referstoaWebDavbasedserverthathosts
configurationfilesusedbytheapplicationconfigurationservices.Theconfigurationserver
isdeliveredasareferenceimplementation.AnycommonWebDavserviceshostedona
commonJ2EEservercanbeusedforthispurpose.

Note: Campus Mobile does not make use of a Configuration Server.


Configuration files are contained within the mobile application.

Ontheserverside,ADF Mobile Browser andADF Faces Rich Client referto


frameworksfordevelopingserversideapplicationsthatcanbeusedforimplementationof
theremoteURLADFMobileapplicationfeature.

Note: Campus Mobile does not make use of ADF Mobile Browser or ADF
Faces Rich Client. All application code is contained within the mobile
application.

OracleCorporationConfidentialForOracleinternaluseonly Page9

2. CAMPUSSOLUTIONS
2.1 CAMPUSSOLUTIONSCONFIGURATION
CampusMobilerequiresaminimumPeopleToolslevelofPeopleTools8.52.Forinformationon
CampusSolutionsmaintenancelevelrequirementsspecifictoaCampusMobilereleaseversion,
pleaserefertoMyOracleSupportdocument1557671.1.

NotethatconfigurationchangesmadewithinCampusSolutionsunderSetUpSACR>Common
Definitions>SelfServicearetypicallyapplicabletoSelfServicepagesonlyandmaynotaffectthe
functioningoftheEnrollmentWebServicesorCampusMobileitself.

2.2 INTEGRATIONBROKERCONFIGURATION
TheconfigurationofIntegrationBrokerrequiredtoenableCampusMobilearedescribedinthe
CampusSelfServicePeopleBookchapterSettingUpCampusMobile.Inparticular,refertosections
SettingUpIntegrationBrokerforCampusMobile,ActivatingCampusMobileServiceOperations
andHandlers,andGenerateRoutingsfortheFollowingServiceOperations.

2.3 SECURITYCONFIGURATION
UserslogintotheCampusMobileappusingthesamecredentialsthattheyuseforCampusSelf
ServiceaccessthroughPIA.ThesecredentialsarepassedtoPeopleToolsthroughthe
AuthenticationandAuthorizationservices,whicharedescribedbelow.

Asdelivered,allfeatureswithinCampusMobileareprotectedwithPermissionList
HCCPCSSA3000.ThisisanewPermissionListcreatedtosupportauthorizationinCampusMobile.
Bydefault,thisPermissionListismappedtothenewlydeliveredCSMobileStudentRole,anda
usermusthavethisroletobeabletousetheapplication.

IfyouwanttouseadifferentroletosecureaccesstoCampusMobilefeatures,youshouldmap
PermissionListHCCPCSSA3000tothatrole.

IfyouwanttouseadifferentPermissionListtosecureaccesstoCampusMobilefeatures,youmust
customizeCampusMobileasdescribedinsection3.3.2.3andmapthatPermissionListto
whicheverroleyouwanttouseforthispurpose.

Inaddition,youmustassignthePermissionListthatisusedtosecureaccesstoCampusMobile
featurestoeachofthewebserviceoperationscalledfromCampusMobile.Thisisdescribedinthe
CampusSelfServicePeopleBookchapterSettingUpCampusMobile,SettingUpSecurityforCampus
Mobile.

2.3.1 AUTHENTICATIONSERVICE
CampusMobilecanauthenticateagainstanybasicauthenticationserver.

OracleCorporationConfidentialForOracleinternaluseonly Page10

CampusSolutionsprovidesaRESTfulwebserviceoperation(SCC_USERREG_AUTHENTICATE)that
isusedexclusivelytosupportauthenticationinCampusMobile.Nothingisreturnedinthepayload.

AnyURLthatisprotectedwithbasicauthenticationcanbeusedastheloginURL.Youmay
implementyourownURLanduseitinsteadofthedefaultone,inwhichcaseyoumustmodifythe
configurationinyourmobileapplication(refertosection3.3.2.2).

2.3.2 AUTHORIZATIONSERVICE

SinceCampusMobilemakesuseoftheusersPermissionListstocontrolaccesstoitsfeatures,an
AccessControlServicemustbedeployedtoreturntheusersPermissionListstoCampusMobile.

AnAccessControlService(ACS)isaRESTfulwebservicewithJSONthatenablesuserstodownload
theiruserrolesandprivilegesthroughasingleHTTPPOSTmessage.

CampusSolutionsprovidesaRESTfulwebserviceoperation(SCC_USERREG_AUTHORIZE_POST)
thatisusedexclusivelytosupportauthorizationinCampusMobile.Itacceptsinputandreturnsthe
resultinJSONmessageformat.

YoumayimplementyourownACSanduseitinsteadofthedefaultone,inwhichcaseyoumust
modifytheconfigurationinyourmobileapplication(refertosection3.3.2.3).

2.4 ABOUTTHEENTITYREGISTRY
2.4.1 ENTITYPROFILES
CampusMobileusesEntityProfilingoftheEnrollmentWebServicesinordertominimizethe
payloadprovidedbytheEWS.AMobileprofileisdeliveredthatisdesignedtoprovideonlythe
necessaryfieldstoCampusMobile.

YoucanviewthedeliveredEntityProfilesforCampusMobile,MobileandMobileCartinthe
EntityProfilecomponent(SetUpSACR>SystemAdministration>Entity>EntityProfile).

FormoreinformationontheEntityRegistryandEntityProfilesseetheCampusCommunity
PeopleBookchapterSettingUpEntityRegistry.

2.5 CONFIGURINGNOTIFICATIONS
2.5.1 FRAMEWORK
TheCampusSolutionsNotificationsFrameworkprovidesaconsistent,extensiblecommunication
mechanismthatCampusSolutionsproductareascanusetoenablenotificationstointerested
parties.NotificationsaredeliveredthroughanotificationsChannelemail,SMS,push,alerts,or
worklistsbasedonatransactionperformedbyaconsumingapplication(calledaConsumer).

OracleCorporationConfidentialForOracleinternaluseonly Page11

EmailandSMSnotificationsmaybereceivedbyusersontheirsmartphones,whetherornot
CampusMobileisinstalled.Pushnotificationsaresenttoausersdeviceonlywhentheyhavethe
CampusMobileappinstalledandassociatedwiththeiruserIDthroughlogin.Alertandworklist
notificationsarenotdisplayedinCampusMobile.

FormoreinformationabouttheNotificationsFramework,refertotheCampusCommunity
PeopleBookchapterWorkingWiththeNotificationsFramework.

2.5.2 CONSUMERS
CampusSolutionsisdeliveredwithanumberofpreconfiguredConsumers,someofwhichhave
beendevelopedconcurrentlywithCampusMobile.TheseareidentifiedwithCampusMobilein
thename:

CampusMobile
CampusMobileGradeEMAIL
CampusMobileGradePUSH
CampusMobileGradeSMS
CampusMobileWLConfirmationEMAIL
CampusMobileWLConfirmationPUSH
CampusMobileWLConfirmationSMS

AllConsumersaredeliveredasinactive.ToenabletheseConsumers,refertotheCampusSelf
ServicePeopleBookchapterSettingUpCampusMobile,SettingUpForNotifications.

YouareabletomodifythedeliveredConsumersorwriteyourown.

ItisimportanttounderstandthatemailandSMSnotificationsdonotrequireimplementationof
CampusMobile,whereaspushnotificationsdo.Conversely,youarenotrequiredtoenablethese
ConsumersinordertoimplementCampusMobile.

2.5.2.1 FinalGradePostingConsumers
TheFinalGradePostingConsumersnotifyastudentwhenthestudentsfinalgradehasbeen
postedforaclass.

Eachstudentwillreceiveanotificationforeveryinstanceofhavingfinalgradespostedforaclass.

2.5.2.2 MovedfromWaitlisttoEnrolledConsumers
TheMovedfromWaitlisttoEnrolledConsumersnotifyastudentwhenthestudenthasbeen
automaticallyenrolledintoaclassfromthewaitlist.

TheMovedfromWaitlisttoEnrolledConsumersrelyonbeingtriggeredbyawaitlistjobthatis
deliveredasinactive.Forinstructionsonhowtoactivatethiswaitlistjob,pleaserefertothe
StudentRecordsPeopleBookchapterUsingEnrollmentRelatedProcessesformoreinformation.

2.5.2.3 CampusMobileConsumer
TheCampusMobileConsumernotifiesastudentwhen:

OracleCorporationConfidentialForOracleinternaluseonly Page12

Anewchecklisthasbeenassignedtothestudent,orifanychecklistitemsonanexisting
checklisthavebeenupdated.(Note:Thisdoesnotincludetheadditionofanewchecklist
itemtoanexistingchecklist.)
Anegativeserviceindicatorhasbeenassignedto,orremovedfrom,astudentsrecordoran
existingnegativeserviceindicatorhasbeenupdated.
Thestudentsenrollmentappointmentisabouttoopen.

TheCampusMobileConsumermakesuseoftheNotificationFrameworksbatchprocessing
capability.Forinformationonhowtoconfigurethebatchprocessingjobs,refertotheCampusSelf
ServicePeopleBookchapterSettingUpCampusMobile,DefiningandSchedulingCampusMobile
BatchNotifications.

Checklistnotificationsaresentforcheckliststhatareaddedorupdatedafterthelastbatch
executiondateandpriortothedateofthebatchprocessexecution.

Serviceindicatornotificationsaresentforchangesoccurringsincethetimeofthelastbatch
processexecution.

Enrollmentappointmentnotificationsaresentforappointmentsthatwillopenthedayafterthe
batchprocessexecution.

Itisexpectedthatbatchprocessingwilloccuronceperday,withthefollowingimplications:

1. Executingthebatchprocessmorethanonceperdaymayleadtoduplicateenrollment
appointmentorchecklistnotifications.
2. Executingthebatchprocesslessthanonceperdaymayleadtomissedenrollment
appointmentnotifications,aswellasdelayedchecklistandserviceindicatornotifications.
3. Notificationsaresenttostudentsatthetimeofbatchprocessexecution.

2.5.3 TEMPLATES
EverynotificationsentbyaConsumerisbasedonaTemplate,whichisusedtocreatethe
notification.Thetemplatedefinesattributesofthenotification,suchasthemessagethatis
deliveredtotheuserusingemailorSMS.

ThefollowingtemplatesaredeliveredforusebytheConsumersmentionedabove:

CHECKLIST_EMAIL
CHECKLIST_SMS
CHECKLIST_UPDATED_PUSH
ENRL_FRM_WL_EMAIL
ENRL_FRM_WL_SMS
ENROLLED_FROM_WAITLIST_PUSH
ENROLLMENT_APPT_EMAIL_OPEN
ENROLLMENT_APPT_OPEN_PUSH
ENROLLMENT_APPT_SMS_OPEN

OracleCorporationConfidentialForOracleinternaluseonly Page13

FINAL_GRADES_POSTED_PUSH
FINAL_GRADES_CHANGED_PUSH
FINAL_GRADES_REMOVED_PUSH
GRD_EMAIL_ADD
GRD_EMAIL_CHNG
GRD_EMAIL_REM
GRD_SMS_ADD
GRD_SMS_CHNG
GRD_SMS_REM
SERVICE_INDICATOR_ASSGND_PUSH
SERVICE_INDICATOR_REMOVED_PUSH
SI_ADD_OR_CHG_EMAIL
SI_ADD_OR_CHG_SMS
SI_DELETE_EMAIL
SI_DELETE_SMS

AllTemplatesaredeliveredasinactive.ToenabletheseTemplates,refertotheCampusSelfService
PeopleBookchapterSettingUpCampusMobile,SettingUpForNotifications.

YouareabletomodifythedeliveredTemplatesorcreateyourown.

2.5.4 PREFERENCES
Everyusermustspecifyanemailaddressforreceivingemailbasednotifications,andacellphone
numberforreceivingSMSbasednotifications.ThiscanbedonethroughCampusSolutionsSelf
Service>PersonalInformation>NotificationsPreferences.

ThispagealsoallowsuserstoenableordisableeitheremailorSMSbasednotifications.

CampusSolutionsSelfServicealsoprovidesapageforadministratorstoconfigurethenotification
preferencesforallusersthroughSelfService>CampusCommunity>PersonalInformation>
Biographical>PersonalAttributes>NotificationsPreferences.

UseofthesepagesisdescribedintheCampusCommunityPeopleBookchapterWorkingWiththe
NotificationsFramework.

SinceuserswillnotreceiveemailorSMSnotificationsuntilsuchinformationhasbeenentered,you
mayconsiderimplementingabatchupdateprocess,orcommunicatingtoallusersthattheyshould
entertheirnotificationpreferences.

Usersmanagethereceiptofpushnotificationswithintheirsmartphonesoperatingsystem.

2.6 MESSAGECATALOGCONSIDERATIONS
CampusMobileusestheEWSforenrollmenttransactionsandtheEWSusesMessageCatalog14641
(refertotheEWSguide)formessagesthataredisplayedtousers.Mostofthedeliveredmessages

OracleCorporationConfidentialForOracleinternaluseonly Page14

areapplicabletoanyuserinterfaceandthusaresuitableforCampusMobile.Howeverthereare
certainmessagesthatshouldbeevaluatedbyeachinstitutiontodeterminetheirapplicabilityto
CampusMobile,sincetheyrefertoCampusSelfServiceUIcomponents.Sincethesemessagesare
currentlyutilizedbybothCampusSelfServiceandCampusMobile,institutionsmaywantto
considermodifyingtheexistingmessagestowardamoregenericwordingthatdoesnotinclude
instructionsspecifictoonedeliveryplatform.Refertothetablebelow.

146417 Class%1isfull.Ifawaitlistisavailable,clickAddAnotherClasstoreturn
tostep1.Clicktheclasslink,selectthewaitlistoptionandresubmityour
request.

1464138 %1.Youmustobtainpermissiontotakethisclass.Ifyouhavea
permissionnumber,clickAddAnotherClass,clicktheclasslink,enterthe
numberandresubmit.

14641223 Class%1anditsalternate(%2)arefull.Ifawaitlistisavailable,clickAdd
AnotherClasstoreturntostep1.Clicktheclasslink,selectthewaitlist
optionandresubmityourrequest.

OracleCorporationConfidentialForOracleinternaluseonly Page15

3. CAMPUSMOBILE
3.1 OVERVIEW
ThefeaturesofCampusMobilearedescribedintheCampusSelfServicePeopleBookchapterUsing
CampusMobile.

CampusMobileisdeliveredasanunsignedMobileApplicationArchive(.maa)file,whichgivesyou
theabilityto:

Configureyourmobileapplication.(refertosection3.3.)
Brandyourmobileapplication.(refertosection3.4.)
Customizeyourmobileapplication.(refertosection3.5.)
Extendyourmobileapplication.(refertosection3.6.)
Manageyourmobileapplication.(refertosection3.7.)

Todothis,youwillneedtouseOraclesJDeveloperIDE,whichisdescribedinsection3.2.

3.2 USINGJDEVELOPER
OracleJDeveloperisanintegrateddevelopmentenvironment(IDE)thatsimplifiesthedevelopment
ofJavabasedenterpriseormobileapplications.JDeveloperisthedevelopmentenvironmentfor
theOracleApplicationDevelopmentFramework(OracleADF).JDeveloper11gR2(11.1.2.4.0)
providessupportfordevelopingADFMobilebasedapplications.

TheADFOracleFusionMiddlewareMobileDeveloper'sGuideforOracleApplication
DevelopmentFramework11gRelease2(11.1.2.4.0),hereinreferredtoastheADFMobile
DevelopersGuide,providesacomprehensiveguidetodevelopingOracleADFbasedmobile
applicationsusingOracleJDeveloper.ThisdocumentcanbelocatedontheOracleTechnology
Network>DeveloperTools>ADFMobile.

Thesubsequentsectionsofthisdocumentprovideinformationabouthowtoconfigure,brandand
customizethedeliveredCampusMobileapplicationarchiveusingJDeveloper,makingreferenceto
applicablesectionswithintheADFMobileDevelopersGuide.

3.2.1 INSTALLINGANDSETTINGUPJDEVELOPER
Navigatetohttp://www.oracle.com/technetwork/developer-tools/jdev/downloads/index.html,
thendownloadandinstallOracleJDeveloper11gR2(11.1.2.4.0).ForadditionalJDeveloperand
ADFMobilereleaselevelrequirements,aswellasotherrequirementsspecifictoaCampusMobile
releaseversion,pleaserefertoMyOracleSupportdocument1557671.1.

Followchapter3oftheADFMobileDeveloper'sGuidetosetupJDeveloperandtherequired
developmenttoolsforiOSorAndroid(orboth).

OracleCorporationConfidentialForOracleinternaluseonly Page16

3.2.2 CREATINGANEWMOBILEAPPLICATIONFROMTHEDELIVEREDMOBILEAPPLICATION
ARCHIVEFILE
InJDeveloper,selectNewApplication>MobileApplicationfromArchiveFile,thenbrowsetothe
CampusMobile.maafilecontainedwithinyourCampusSolutionsreleasefolder.Youwillnowsee
anapplicationcalledCampusMobileinyourApplicationNavigator,similartothescreenshotbelow.


Figure31ApplicationNavigator

Chapter4oftheADFMobileDevelopersGuideprovidesanoverviewofthestructureofthemobile
applicationthatyouhavejustcreated,includingadescriptionoftheimportantfilesandhowto
navigatetheapplicationstructurewithinJDeveloper.Bearinmindthatthedescriptioninchapter4
oftheADFMobileDevelopersGuideisrelatedtoanapplicationthatiscreatedfromscratch.For
furtherinformationaboutwhathappenswhenyoucreateanapplicationfromamobileapplication
archivefile,refertosection17.7.2oftheADFMobileDevelopersGuide.

Asdelivered,theCampusMobileapplicationhasOraclebrandingandsomedummyconfigurations.
Thesubsequentchaptersofthisguidedescribehowyoucanconfigure,brand,customizeandeven
extendyourmobileapplication.

Youmaywanttodeployandtestyourmobileapplicationatthispointbeforeimplementingany
brandingorcustomizations.Beforedoingso,youmustataminimumconfigurethewebservice
endpointsandensurethatyoursecuritymodelisreflectedwithintheappconfiguration(referto
section3.3).Havingdonethis,youcandeploytoaninstalledemulatorortoaconnecteddevice
(refertosection3.7.2).

3.3 CONFIGURINGYOURMOBILEAPPLICATION
3.3.1 WEBSERVICES
AllwebserviceendpointsaredefinedintheApplication Resources > Descriptors > ADF
META-INF > connections.xmlfile.Withinthisfile,youmustreplaceeachinstanceofthestring
hostnamewiththecorrectpathtotheserverthathostsyourwebservices,suchas
myserver.myinstitution.edu.

OracleCorporationConfidentialForOracleinternaluseonly Page17

Toensuresecurecommunicationstoandfromthemobiledevice,itisimportanttousesecuredweb
services(i.e.httpsandnothttp)thathaveanSSLcertificatesignedbyacertifiedCA(sinceaself
signedcertificatewillnotwork).

Havingconfiguredyourmobileapplicationthisway,yourmobileapplicationwillconnecttothe
webserviceendpointsthatyouhavedefined.Ifforanyreasononeormoreoftheseendpoints
change,youwillneedtoreleaseanewversionofyourmobileapplication.

3.3.2 SECURITY
Chapter18oftheADFMobileDevelopersGuideprovidesanoverviewofthesecurityframework
withinADFMobileanddescribeshowtoconfigurethesecuritymechanismswithinanADFMobile
application.

3.3.2.1 LoginPage
CampusMobileisdeliveredtoyouwithacustomloginpage,describedbythefile
ApplicationController > Web Content > login.html.ItisasimpleHTMLpagethat
providesusernameandpasswordtextentryboxes,aLoginbuttonandaRemembermecheckbox.

Forinformationaboutcustomizingthedeliveredloginpage,refertosection3.5.1.

3.3.2.2 Authentication
CampusMobileauthenticatesagainstthedeliveredauthenticationRESTwebservicethatis
describedinsection2.3.1.Thelocationofthiswebserviceisdefinedintheconnections.xmlfile,
withinthenodeLoginConnection,aselements<login>and<logout>.

Youmustdefinethecorrectwebserviceendpointintheseelements.

Followingsuccessfulauthentication,theuserscredentialsarestoredintheencryptedondevice
credentialsstore.CampusMobileinjectstheuserscredentialsintotheheaderofsubsequentweb
servicecalls.

3.3.2.3 Authorization
MostfeatureswithinCampusMobileareconstrainedforaccessbythePermissionList
HCCPCSSA3000.ThisisdefinedintheView Controller > Application Sources > META-
INF > adfmf-feature.xmlfile.IfyouwanttomakeuseofadifferentPermissionList,perhaps
evenusingdifferentpermissionliststoconstrainaccesstodifferentfeatures,changethevaluefor
eachfeatureinthisfile.

CampusMobilecallsthedeliveredauthorizationRESTwebservicethatisdescribedinsection2.3.2.
Thelocationofthiswebserviceisdefinedintheconnections.xmlfile,withinthenode
LoginConnection,aselement<accessControl>.

Youmustdefinethecorrectwebserviceendpointinthiselement.

3.3.2.4 Timeouts

OracleCorporationConfidentialForOracleinternaluseonly Page18

ADFMobileprovidesforbothanIdleTimeoutandaSessionTimeout,asdefinedwithinbythe
<idleTimeout>and<sessionTimeout>elements,respectively,withintheLoginConnection
nodeofconnections.xml.

TheIdleTimeoutdefinesthetimeforanapplicationfeaturetoremainidlebeforetheusermustre
authenticate.Afterthisperiodexpires,theuseristimedoutofalltheapplicationfeaturesthatare
securedbytheloginconnection.Inthissituation,theuserispromptedwiththeloginpagewhen
theyaccessthefeatureagain.IftheSessionTimeouthasnotyetoccurred,theuserscredentialsare
authenticatedagainstthelocalcredentialstore(otherwisetheuserscredentialswillbe
authenticatedagainsttheauthenticationservice).ThedefaultvalueoftheIdleTimeoutis30
minutes.

TheSessionTimeoutdefinesthetimethatausercanremainloggedintoanapplicationfeature.
Afterthisperiodexpires,theuserispromptedwiththeloginpageandtheuserscredentialsare
authenticatedagainsttheauthenticationservice.Thedefaultvalueis8hours.

3.3.3 PROPERTIES
Thereisasinglepropertiesfile(CampusSettings.properties)thatholdsconfiguration
propertiesusedwithintheapp:

GCM_SENDER_IDTomakeuseofpushnotificationstoAndroiddevices,youmustcreatea
GoogleAPIproject(refertohttp://developer.android.com/google/gcm/gs.html).You
mustspecifytheprojectnumberhere,whichwillbeusedtovalidatetheGCMsenderID
duringthedeviceregistrationprocessforGCM.
HOLDS_SERVICE_DURATIONToavoidloadingtheusershold(negativeserviceindicator)
dataeverytimetheuserviewsthespringboard,thedataisloadedinabackgroundthread
thatiscalledatregularintervals.Thisvaluespecifiesthenumberofminutesinbetween
eachreloadoftheusersholddata.Thedefaultvalueis5(minutes).

3.3.4 CURRENCYSYMBOLS
CampusSolutionssendsmonetaryamountstoCampusMobilewithanassociatedcurrencycode,
suchasUSDorAUD.CampusMobileconvertsthecurrencycodeintoacurrentsymbolbasedon
whatisdefinedintheresourcebundle(ViewControllerBundle.xlf).Youshouldensurethatall
currenciesyouexpecttobedisplayedinyourappareconfiguredintheresourcebundle.

3.4 BRANDINGYOURMOBILEAPPLICATION
BeforedistributingtheCampusMobiletoyourstudents,youwillwanttobranditasyourown
application,consideringattributessuchas:

Theapplicationid,nameandicon
Yourcompanyorinstitutionlogoandcolorscheme
Informationabouttheapp
AppURLscheme

OracleCorporationConfidentialForOracleinternaluseonly Page19

Versioningoftheapp.

ThesechangesaremadewithinJDeveloperandaredescribedinthesectionsbelow.

3.4.1 CHANGINGTHEAPPLICATIONID
BothAndroidandiOSdevelopmentguidelinesrequirethateveryapphasanidentifier(called
packageforAndroidappsandBundleIDforiOSapps)thatisuniqueacrossallapplicationsin
theAppleAppStore,oranapplicationmarketplace,asappropriate.Therestrictionsonthis
identifieraresimilar,butslightlydifferent,forthetwooperatingsystems.Thisidentifierisnever
displayedtoyourendusersandyoucansetitforeachoperatingsystemwithintheJDeveloper
deploymentdescriptors,usingtheApplication Bundle Idattribute.Refertosection3.7.2for
moreinformationaboutdeploymentdescriptors.

However,sincethenamingconventionsaresimilar,youmayprefertousethesameunique
identifierforbothAndroidandiOS.ThiscanbeachievedbysettingtheIdattributeintheadfmf-
application.xmlfile.Atdeploymenttime,ifyouhavenotenteredaspecificvaluefor
Application Bundle Idwithinadeploymentdescriptor,thisattributewillbereadfromadfmf-
application.xml.

CampusMobileisdeliveredwiththeIdattributesettocom.oraclecorp.internal.CampusMobile.
Youshouldchangethistosomethinglikeedu.myinstitution.MyApp,whichmustmatchthe
provisioningprofileissuedbyApple(foriPhoneappdevelopment).

Bydefault,thenameofthedeliveredpackagefile(forexample,MyApp.apkorMyApp.ipa)willbe
derivedfromtheIdattributespecifiedinadfmf-application.xml.Youcanoverridethisinthe
deploymentdescriptors.

3.4.2 CHANGINGTHEAPPLICATIONNAME
Theconfigurationfileadfmf-application.xmlholdsthevalueforthenameoftheapplication
thatwillbedisplayedtousersintheAppleAppStore(oranapplicationmarketplace)andonthe
usersdevices.

Asdelivered,theapplicationnameisreadfromtheresourcebundleCampusMobileBundle.xlf,in
whichitissettoCampus.Touseyourownname,changethevalueofAPP_NAMEwithinthisfileto
thenameyouwanttouse.

Thereasonfordefiningtheapplicationnameintheresourcebundleistoallowforlocalizationof
thename.Youcanlearnmoreaboutlocalizationinsection3.5.5.

3.4.3 CHANGINGTHEAPPLICATIONICON
BothAndroidandiOShavedifferentrequirementsfortheappicon.Youshouldreadtheguidelines
(AndroidDevelopers>Design>IconographyandiOSDeveloperLibrary>CustomIconandImage
CreationGuidelines>AppIcon)beforedevelopingyourownappicon.Bothoperatingsystems

OracleCorporationConfidentialForOracleinternaluseonly Page20

requirethedefinitionoficonimagefilesfordifferentformfactors,whichwillbescaledaccordingly
onuserdevices.

ThedeliveredCampusMobileappiconhastwoversions,oneforAndroidandoneforiOS,both
114x114pixels.WhilstADFMobilefacilitatesthedefinitionofdifferentsizedimagefilesfor
differentdeviceformfactors,thesame114x114imagefilehasbeenreplicatedwithdifferent
filenamesforeachoperatingsystem.Theseimagefilesarelocatedandroidandiosfoldersunder
Application Resources > Resources.Onceyouhavedevelopedyourownappicon,youcan
replacethedeliveredimagefileswithyourown,usingthesamefilenames.

BeawarethatApplealsorequiresa512x512imagefileforusewithiniTunes.

NotethatADFMobileallowsfortheiOSglosseffectontheicontobeturnedonoroff.Thiscanbe
configuredwithintheiOSdeploymentprofileunderApplication > Application Properties
> Deployment > IOS_MOBILE_NATIVE_archive > Edit > iOS Options > Application
Images.Asdelivered,itisturnedoff.

3.4.4 INSERTINGYOURLOGO
Asdelivered,theOraclelogoappearsonthesplashscreenandtheaboutpage.

Thesplashscreenisonewholeimage,forwhichthereexistsmultipleimagefilesfordifferent
deviceformfactors.Theseimagefilesarelocatedinthesamefoldersastheappicons,under
Application Resources > Resources.Onceyouhavedevelopedyourownsplashscreen
image,youcanreplacethedeliveredimagefileswithyourown.

Thelogousedontheaboutpageisanimagefile(logo.png)storedwithintheViewController
> Web Content > resources > images.Youcanreplacetheexistingfilewithyourownor
relocateitonthepageusingthe.spacerAboutentryinthecustom.cssstylesheet.

AsmallversionoftheOraclelogoisusedastheHomebuttonthat,whentapped,returnstheuserto
thespringboard.Thisisstoredasanimagefile(home.pngwithinViewController > Web
Content > resources > icons)whichyoucanreplacewithyourown.Youmaywanttousea
smallversionofyourownlogotoensureaconsistentbrandingthroughouttheapp.Otherwiseyou
maywanttouseagenerichomeicon.

3.4.5 INSERTINGYOURCOLORSCHEME
Theoverallvisualcolorschemepresentedthroughouttheappisdeterminedbytheskinreferenced
withinadfmf-config.xmlandafewbackgroundimages.TheuseofCascadingStyleSheet(CSS)
skinsensuresthatallapplicationcomponentsshareaconsistentlookandfeel.

Thedeliveredskin(campusMobile)isanextensionofthedefaultskinprovidedbyADFMobile,
whichincludesapredominantlyblackpagebackground,withblackheaderandfooter,alongwith
standardiOScoloringforpagecomponents,suchastables,listsandbuttons.

OracleCorporationConfidentialForOracleinternaluseonly Page21

Theskinextensionsaredefinedincommon.cssandcustom.css,whicharelocatedin
ViewController > Web Content > resources > styles.Theyareregisteredintheadfmf-
skins.xmlfile.

Youmaywanttochangetheskinoftheappsothatitusesyourinstitutionscolorsandworkswell
togetherwithyourlogo.Todothis,youcaneitherextendthedeliveredskinorinsertyourown
skin.Chapter5.11oftheADFMobileDevelopersGuidedescribeshowtodothis.

Notethattheloginpage(login.html)isdisplayedpriortotheinitializationoftheADFMobile
frameworkandisthereforenotaffectedbytheskin.Ifyouchangetheskinoftheapp,youshould
alsoconsiderchangingtheappearanceoftheloginpage.

Thespringboardandaboutpagesmakeuseofbackgroundimagesthataredifferenttotheone
definedintheskin.Portraitandlandscapeversionsoftheseimagefilesarelocatedin
ViewController > Web Content > resources > images.Youcanreplacetheexistingfiles
withyourown.Oneachofthespringboardandaboutpagesstretchthebackgroundimagetofit
theusersdevice.Theyalsodefinethelocationofthelogoonthepage.Youcanmodifythesepages
(springboard.amxandabout.amxwithinViewController > Web Content >
oracle.cs.cm.view.springboard)ifyourlogowouldbebettersuitedtoadifferentlocationon
thenewbackgroundimage.

3.4.6 INSERTINGYOURAPPINFO
Asdelivered,theaboutpagedisplaysabackgroundimage,alogo,theappnameandversion
number,anOraclecopyrightnotice,andbuildnumber(infineprint).Youshouldchangethe
copyrightnoticetoyourownmessagebymodifyingthevalueforCOPYRIGHT_LBLwiththe
resourcebundleViewControllerBundle.xlf.Youmaywanttoremovethebuildnumber,which
denotestheunderlyingCampusMobilebuild.

Ifyouwanttomakemoreextensivechangestotheaboutpage,youcouldmodifythedeliveredfile
(about.amxinViewController > Web Content > oracle.cs.cm.view.springboard),or
youcouldwriteyouownpage.Thiscouldbeaconvenientplacetodisplayanyenduserlicense
agreement.Ifyouwriteyourown,youwillneedtoupdatethereferencewithinspringboard-
task-flow.xmlinthesamelocation.

3.4.7 INSERTINGYOURAPPURLSCHEME
Withthereleaseofv1.1patch4,ADFMobilenowsupportsthelaunchofanADFMobilebasedapp
usingaURLscheme.ThismeansthatyourappcanbelaunchedfromanotherappusingaURL.To
facilitatethis,youmustdefinetheURLschemetobeusedwithintheadmf-application.xml
configurationfile.Moreinformationcanbefoundinsection5.4oftheADFMobileDevelopers
Guide.

3.4.8 MAINTAININGTHEAPPVERSION

OracleCorporationConfidentialForOracleinternaluseonly Page22

Theappversionisdefinedinadfmf-application.xml.Asdelivered,thiswillindicatetheversion
ofCampusMobile,butsincethisversionisdisplayedtoyourusers,youshouldmaintainyourown
appversion.

Althoughyoucanenteranytextinthisfield,sinceiOSonlyallowstheappversiontocontainoneor
moreperiodseparatedintegers(forexample,youcanspecify10.2.5,butnotV1),youshould
followtheiOSapprovedformattoensurecompatibilityacrossbothAndroidandiOS.

IfyouwanttouseadifferentappversiononAndroid,youcanconfiguretheVersion Name
attributeoftheAndroiddeploymentdescriptorseparately.NotethattheAndroiddeployment
descriptoralsocontainsaVersion Codeattribute,whichisnotdisplayedtousersandisusedto
determinewhetheroneversionofyourappismorerecentthananother.

NotethattheDescriptionandVendorfieldsinadfmf-application.xmlcanbeleftempty,asthey
arenotused.

3.5 CUSTOMIZINGYOURMOBILEAPPLICATION
3.5.1 CUSTOMIZINGTHELOGINPAGE
Asdelivered,CampusMobilecontainsaloginpage,login.html,locatedin
ApplicationController > Web Content.Youmaywanttomodifythelookandfeelofthispage
toincludeyourlogooradditionalinformationforyourusers.Todothis,youshouldcreateanew
HTMLpage(perhapsacopyofthedeliveredone),whichshouldbereferencedasthecustomlogin
pagewithinadfmf-application.xml.

3.5.2 CUSTOMIZINGTHESPRINGBOARDANDNAVIGATIONBAR
Asdelivered,CampusMobilecontainsaspringboardandanavigationbar.

ADFMobileprovidesyouwiththeabilitytocustomizethefunctionalityofthespringboardand
navigationbarusingJDeveloper.Forexample,youcould

Turnoffthespringboardornavigationbar
Changethewaythespringboardisdisplayed
Createyourownspringboard
Displayatogglebuttonthatenablestheusertodisplaythespringboardornavigationbar

Chapter5.4oftheADFMobileDevelopersGuidedescribeshowtomakesuchcustomizations.

3.5.3 CUSTOMIZINGTHEAPPFEATURES
EveryADFMobileappcontainsoneormorefeatures.Afeaturemaybeaccesseddirectlyfromthe
springboardornavigationbar,oritmaybeaccessedfromanotherfeature.

Asdelivered,CampusMobilecontainsthefollowingfeatures:

Schedule

OracleCorporationConfidentialForOracleinternaluseonly Page23

Search
Cart
Grades
Profile
Finances
TodoList
Springboard(usedtoprovideacustomspringboardimplementation)
Redirector(usedtodisplaythespringboardiftheusershakesthephone)
Map(usedtoprovideacustommapimplementation)

Thefirstseveninthelistaredisplayedonthespringboardandnavigationbar.Theothersarenot.

ADFMobileprovidesyouwiththeabilitytocustomizethedisplayandfunctionalityofthedelivered
featuresusingJDeveloper.Forexample,youcould

Removefeaturesfrom(oraddto)thespringboardornavigationbar
Changetheorderofthefeaturesdisplayedonthespringboardandnavigationbar
Changethenamesandiconsoffeatures(refertosection3.5.5)
Changefeaturesecurityandconstraints
Changefeaturelifecycleandtaskflows

Chapter5.5oftheADFMobileDevelopersGuidedescribeshowtomakesuchcustomizations.

NotethatthedeliveredfunctionalityofCampusMobileisdefinedbythefeatures,sochanging
attributessuchassecurity,constraints,lifecycleortaskflowsisnotrecommended.

3.5.4 MAPSINTEGRATION
ThedeliveredCampusMobileapplicationhasaMapfeaturethatenablesuserstodisplaythe
locationofaclassroomonamapiftheclassroomsbuildinglocationhasbeenenteredintoCampus
Solutions.

ADFMobilesupportstheuseofOracleMapsorGoogleMaps.Asdelivered,CampusMobileuses
OracleMapsandsupportsthedisplayoftheclassroomlocationandtheuserscurrentlocation.

IfyouchangetoGoogleMaps,youruserswillbeabletoaccessGoogleStreetViewandadditional
layers,suchassatellite.Itwouldalsobepossibletoextendtheapptoprovideadditional
information,suchasdirections.

ToconfiguretheapptouseGoogleMaps,youmustmodifyadf-config.xmlasfollows:

1. Replace<adf-property name="mapProvider" value="oraclemaps"/>with<adf-


property name="mapProvider" value="googlemaps"/>.
2. Add<adf-property name="geoMapKey" value="MapKey"/>whereyourKeyisyour
institutions(orcompanys)GoogleMapsbusinesslicensekey.

OracleCorporationConfidentialForOracleinternaluseonly Page24

3. Add<adf-property name="geoMapClientId" value="ClientId"/>where


yourClientIdisyourinstitutions(orcompanys)clientidforyourGoogleMapsbusiness
license.
4. Remove<adf-property name="mapViewerUrl" value="http://elocation.oracle.
com/mapviewer"/>.
5. Remove<adf-property name="baseMap" value="ELOCATION_MERCATOR.WORLD_
MAP"/>.

Refertosection3.6.1fordetailsofhowtoextendtheapptomakeuseofadditionalGoogleMaps
functionality.

3.5.5 ICONS,LABELS,RESOURCEBUNDLESANDLOCALIZATION
AlliconsandlabelsdisplayedwithinCampusMobilearereferencedwithintheresourcebundle
ViewController.xlf.Thisapproachnotonlyenablesyoutoeasilyreplaceaniconorlabelwith
yourown,butalsofacilitateslocalization.Inthisway,youcansupportmorethanonelocalewithin
theapp.Refertosection5.10oftheADFMobileDevelopersGuideformoreinformation.

CampusMobiledeterminestheresourcebundletobeusedbasedonthelocalespecifiedinthe
devicessettings.

Ifyoudontneedtosupportmultiplelocaleswithintheapp,youcansimplymakechangestolabels
directlywithinViewController.xlfandyoucanreplacetheimagefilesdirectlyinthefolder
ViewController > Web Content > resources > icons.

Youshouldreadtheguidelines(AndroidDevelopers>Design>IconographyandiOSDeveloper
Library>CustomIconandImageCreationGuidelines)beforedevelopingtheiconsettobeusedin
yourmobileapplication.

3.5.6 CUSTOMIZINGTHEGENERICERRORMESSAGE
IfCampusMobilereceivesaninvalidwebserviceresponse(ornoresponsewithinthetimeout
period),agenericerrormessageisdisplayedtotheuser.Asdelivered,thiserrormessagestates
ConnectionError.Pleasetryagain.Iftheproblempersists,pleasecontactyourIThelpdesk.You
maywanttocustomizethismessagebyincludingaphonenumberoremailaddressthattheycan
contactinsuchsituations.Todothis,modifythevalueforthekeyCONNECTION_ERROR_LABELin
ViewController.xlf.

3.5.7 CUSTOMIZINGPAGESWITHINTHEAPP
ADFMobileAMXisasubframeworkwithinADFMobilethatprovidesasetofUIcomponentsthat
enableyoutocreateanapplicationfeaturewhosebehaviorisidenticalonallsupportedplatforms
andprovidesaccesstodevicefunctionality.JDeveloperallowsyoutodragthesecomponentsinto
aneditorfromtheComponentpaletteorfromtheDataControlpalette.JDeveloperalsoallowsyou
tocreatetaskflowsthatdefinethenavigationbetweenADFMobileAMXpages.

OracleCorporationConfidentialForOracleinternaluseonly Page25

EachpagewithinCampusMobileisdefinedbyanAMXfile,suchasgrades.amxfortheGrades
feature.UsingJDeveloper,youhavealotofflexibilityforchangingthelayoutofanypagewithinthe
app.

Beforemakingsuchchanges,pleasereadsections6,7and8oftheADFMobileDevelopersGuideto
ensurethatyouhaveathoroughunderstandingofAMX.

Forinformationaboutchangingthedatadisplayedonapagewithintheapp,refertosection3.6.2.

Itisnotrecommendedtochangethetaskflowswithintheapp,otherthantoupdatethepage
namesifyoucustomizepages.Otherwiseyoumaybreakthedesignedflowoftheapp,potentially
introducingbugsandevenleadingtodataintegrityissues.

3.5.8 CUSTOMIZINGTHEANDROIDAPPPERMISSIONS
OniOS,whentheappattemptstoaccessadeviceservice(suchasacameraorcontacts),theuseris
promptedtoprovidepermission.

OnAndroid,therequireddeviceaccesspermissionsfortheapplicationcannotbeautomatically
determined.Theuserispromptedduringinstallationtoprovidepermissiontoaccesstherequired
deviceservices.Allrequiredpermissionsarelistedinafile(AndroidManifest.xml)thatis
deliveredwithintheJDeveloperADFMobileFrameworkextensionandcopiedintotheAndroidapp
whenJDeveloperbuildsit.

Tomodifythislistofpermissions,followthesesteps:

1. Unzip MW_HOME/jdeveloper/jdev/extensions/oracle.adf.mobile/Android/Oracl
e_ADFmf_Framework.zip.
2. Edit Android/template/AndroidManifestTemplate.xml, and remove the permissions
that are not required by the application.
3. Zip it back up, ensuring the zip file has the exact same directory structure as the original
zip file. Any extra layers of directory in the zip file will result in failure.
4. Restart JDeveloper and deploy your app.

3.6 EXTENDINGYOURMOBILEAPPLICATION
3.6.1 PROVIDINGADDITIONALMAPFUNCTIONALITY
IfyouchangetousingGoogleMaps(refertosection3.5.4)andwanttomakeuseofotherGoogle
MapsAPIfeatures,suchasprovidingdirections,youmustwriteyourownJavaScriptand
incorporateitintotheshow-location.amxpage(refertosection3.5.7regardingcustomizations
todeliveredAMXpages).

3.6.2 CHANGINGTHEDISPLAYEDDATA
InadditiontochangingthelayoutofadeliveredAMXpage(refertosection3.5.7regarding
customizationstodeliveredAMXpages),youmaywanttoalterthedatathatisdisplayedona
deliveredAMXpage.

OracleCorporationConfidentialForOracleinternaluseonly Page26

Toremovedata,simplyremovethecomponentthatdisplaysthedata.Thismaybeusefulifyoudo
notmakeuseofaparticularfieldduringatransactionandthereforeyoudontwanttoconfuseyour
usersbydisplayingthefield.

WithintheAMXpagedefinition,youhaveflexibilityabouthowdataisdisplayed.Forexample,you
maywanttodisplayGPAtoonly1decimalplaceinsteadof3.

Inordertodisplayadditionaldataonapage,youmustfirstensurethatthedataisdeliveredtothe
app.Thismaybeassimpleasalteringthedeliveredentityprofilefortherelevantwebservice
(refertotheEntityRegistrychapter(s)oftheCampusCommunityPeopleBook).Oryoumayneed
tocustomizethewebservice.

ToensurethatthedatainthewebserviceresponseismadeavailabletotherelevantAMXpage(s)
fordisplay,youneedtowriteadatacontrol.ThedeliveredDataControlscannotbemodifiedor
extended.Formoreinformationaboutwebservicedatacontrols,refertochapters8and9ofthe
ADFMobileDevelopersGuide.

Onceyouhavecreatedthewebservicedatacontrol,youcanthenupdateyourAMXpagetodisplay
theadditionaldata.

3.6.3 PROVIDINGADDITIONALFEATURES
OneofthebenefitsofusingOracleADFMobiletechnologyistheeasewithwhichyoucanextend
CampusMobilebyaddingnewfeatures.Asdescribedinsection1.3,eachofAMX,LocalHTMLand
RemoteHTMLfeaturesmaycoexistwithinanADFMobileapplication,whichmeansthatyoucan
leverageexistingwebpagesandwebserviceswithouthavingtolearnADFMobileAMX.

Forexample,ifyoualreadyhaveawebpagethathasbeendesignedforthemobilebrowser(or
evenifithasnt),youcanveryeasilyaddaRemoteHTMLfeaturethatdisplaysthewebpagewithin
CampusMobile.Formoreinformationonthis,readchapter12oftheADFMobileDevelopers
Guide.

Alternatively,ifyouhaveexistingwebservices,youcaneasilyaddaLocalHTMLfeature,writing
yourownHTMLcode(inJDeveloperornot)thatcallsthewebservices.Suchpagesmaystillaccess
thedevicefunctionality.Formoreinformationrefertosection5.9.1oftheADFMobileDevelopers
Guide.

3.7 MANAGINGYOURMOBILEAPPLICATION
3.7.1 DEVELOPINGYOURMOBILEAPPLICATION
Beforemakinganychangestothedeliveredapp,youshouldconsiderformalizingyour
developmentprocesses.Inparticular,youshouldmaintainarecordofallthechangessothatthey
canbereappliedwhenyouupgradetolaterrevisionsofCampusMobile.

Atypicaldevelopmentlifecycleincludes:

OracleCorporationConfidentialForOracleinternaluseonly Page27

Requirementsgatheringanddefinition
Design
Implementation(refertosections3.2to3.6)
Deployment(refertosection3.7.2)
Testinganddebugging(refertosection3.7.3)
Distribution(refertosection3.7.4)
Support(refertosection3.7.5)

3.7.2 DEPLOYINGYOURMOBILEAPPLICATION
Chapter17oftheADFMobileDevelopersGuidedescribesindetailtheentiredeploymentprocess.

ThedeliveredCampusMobileapplicationhasadefaultAndroiddeploymentprofileandaniOS
defaultdeploymentprofile.Youcanmakeuseoftheseforyourtestingandalsofortheeventual
creationofmobileapplicationfilesfordistributiontoyourstudents.Otherwiseyoucanmodify
theseorcreatenewdeploymentprofilestodeploywithdifferentattributes.

ThedelivereddeploymentprofilesareconfiguredtodeploytheappinReleasemodeandinthecase
ofiOS,asaniPhoneapp(whichmeansthattheappcanbedeployedtoaniPadbutwilldisplayas
iPhonesize).NotethatchangingtoDebugmodewillcauseyourmobileapplicationtorunmuch
slower.ChangingtoaniPhone/iPadappwillcausetheapptostretchtheUIifdeployedtoaniPad
(forwhichitisnotdesigned).Ofcourse,changingtoaniPadappwillprecludedeploymentofthe
apptoaniPhoneforyourusers.

Thedelivereddeploymentprofilesareunsigned.Youmustconfigurethedeploymentprofileswith
yoursigningproperties.ForAndroid,refertosection17.2.3.4oftheADFMobileDevelopersGuide.
ForiOS,refertosections17.2.4.2and17.4.4oftheADFMobileDevelopersGuide.

ToenableyourapptoregisterforpushnotificationsoniOSdevices,youmustensurethatyour
productionprovisioningprofileincludestheentitlementspecifictopushnotifications.Thesameis
trueforyourtestingprovisioningprofile,ifyouwanttotestpushnotifications.Notethatthiscan
onlybedonewithadevice,notusingtheiOSsimulator.

ToenableyourapptoregisterforpushnotificationsonAndroiddevices,youmustcreateaGoogle
APIprojectandrecordtheprojectnumberintheCampusSettings.propertiesconfigurationfile,
asdescribedinsection3.3.3.

Todeployyourmobileapplicationfortesting,selectApplication>Deploy,thenselecteitherthe
AndroidoriOSdeploymentprofile.Youmustthenselecttodeploytoaconnecteddeviceoran
installedemulator.Oncethedeploymenthasfinished,youwillbeabletotestyourmobile
application.

NotethatthefirstlaunchoftheapponAndroidmaytakeawhileasitunpackstheapp.

3.7.3 TESTINGANDDEBUGGINGYOURMOBILEAPPLICATION

OracleCorporationConfidentialForOracleinternaluseonly Page28

Moreinformationabouttestinganddebuggingyourmobileapplicationcanbefoundinchapter19
oftheADFMobileDevelopersGuide.

3.7.3.1 Logging
Asdelivered,CampusMobileonlylogsSEVEREmessages.Thisisrecommendedforyour
productionreleaseofyourmobileapplication.However,fordebuggingpurposes,youcanlower
themessageseverityforlogging.Todothis,modifythevaluefor.levelinthefileApplication
Resources > Descriptors > META-INF > logging.properties.Theacceptedseverity
valuesare:SEVERE,WARNING,INFO,FINE,FINER,FINEST.Formoreinformationabout
configurationoflogging,refertosection19.4intheADFMobileDevelopersGuide.

Logfilesarewrittentothefollowinglocations:

AndroidDevice:/sdcard
AndroidEmulator:DDMS>/mnt/sdcard
iOSDevice:Application>Documents/logs
iOSSimulator:MacConsole>Applications>Utilities>Console

3.7.3.2 Debugging
Debuggingpropertiesarelocatedincvm.properties.Inparticular,toenableJavadebugging,the
parameterjava.debug.enabledmustbesettotrue.

Toenableremotedebugging,theappshouldbedeployedinDebugmode.

3.7.3.3 Certificates
JDevelopercreatesafilewithintheApplication Resources > Securityfolderthatidentifiesa
setofcertificatesfromwellknownandtrustedsources.IfthecertificateusedbyyourSSLweb
servicesisnotcontainedwithinthisset,ornotsignedbyaCAwithinthisset,youmaynoticean
error'Certificatewasissuedbyanunrecognizedentity'inthelogfile.Refertosection18.5ofthe
ADFMobileDeveloper'sGuideforinformationonhowtoaddyourcertificatetothetrustedset.

3.7.4 DISTRIBUTINGYOURMOBILEAPPLICATION
Deployingtheapplicationtotheproductionenvironmenttypicallyinvolvespublishingtoan
enterpriseserver,theAppleAppStore,oranapplicationmarketplace,suchasGooglePlay.After
youpublishtheADFMobileapplication,enduserscandownloadittotheirmobiledevices.

Refertosection17.3.3oftheADFMobileDevelopersGuideforinformationaboutpublishingan
Androidapplication.Refertosection17.4.5oftheADFMobileDevelopersGuideforinformation
aboutpublishinganiOSapplication.

3.7.5 SUPPORTINGYOURMOBILEAPPLICATION
Youshouldconsiderthesupportandmaintenanceramificationsofdeliveringamobileapplication
toyourstudents.

OracleCorporationConfidentialForOracleinternaluseonly Page29

Youmaywanttosetupasupportphonenumberoremail,whichcouldbereferencedinthemobile
applicationsaboutpage(refertosection3.4.6)orgenericerrormessage(refertosection3.5.6).

Youmayconsiderprovidingamechanismforstudentstogivefeedbackabouttheapp,whichcould
beusedtoinformadditionaldevelopmentofyourmobileapplication.

OracleCorporationConfidentialForOracleinternaluseonly Page30