Model Syntax for Serverpackage

Server package definition

This model defines middle tier handlers, methods and data structures (documents).

Syntax:

Name Component [ CodeGenProperties ] PackageType [ JavaLibraries ] [ ModelDependencies ] Handlers Documents

package      MovieManager;
component    APPS8;

category     Activity;

activityhandler MovieDb {
   activity     ViewMovie;
   servicelevel Supported;
   dependencies {
      handler      MovieManager.Kalle;
      ejb          "Kalle";
   }
   methods {
      get<Movie>;
      list<Actor>;
      custom ListMoviesByActor {
         in          Alpha                 ActorName;
         return      Document<Movie>[];
         filter      Movie.Thrillers;
         transaction Supports;
      }
   }
}

activityhandler MovieBrowser {
   activity     BrowseMovie;
   servicelevel Supported;
   methods {
      populate<Movie> PopulateMovie;
      query<Movie> QueryMovie {
         filter      Movie.Thrillers;
      }
      custom ListMoviesByActor {
         in          Alpha                 ActorName;
         return      Document<Movie>[];
         filter      Movie.Thrillers;
         transaction Supports;
      }
      populate<Actor> PopulateActor;
      query<Actor> QueryActor;
      custom ListMoviesByYear {
         in          Integer               Year;
         return      Document<Movie>[];
         transaction Required;
      }
      plsql CancelItem {
         in          Text                  OrderItemId;
         out         Text                  AutomaticPaymentType;
         in          Text                  OrderId;
         in          Text                  Company;
         PL/SQL-Block {
            BEGIN 
            Order_Ledger_Item_API.Cancel_Item(:OrderItemId,:AutomaticPaymentType,:OrderId,:Company);
            END;
         }
         transaction Required;
         ServerImplementation "framework";
      }
      plsql CancelItem1 {
         PL/SQL-Block {
            DECLARE 
            BEGIN 
            &AO.Order_Ledger_Item_API.Cancel_Item(:ORDER_ITEM_ID_$IN$VARCHAR2,:AUTOMATIC_PAYMENT_TYPE_$IN$VARCHAR2,:ORDER_ID_$IN$VARCHAR2,:COMPANY_$IN$VARCHAR2);
            END;
         }
         transaction Required;
      }
   }
}

activityhandler MovieEditor {
   activity     EditMovie;
   servicelevel Supported;
   methods {
      prepare<Movie>;
      get<Movie>;
      populate<Movie>;
      query<Movie>;
      save<Actor>;
      save<MovieActor>;
      savearray<MovieActor>;
      prepare<Actor>;
      custom DeleteMovie {
         in          Integer               MovieId;
         transaction Required;
      }
      event StartFilming {
         inout       Document<Movie> Movie;
         PL/SQL-Block {
            BEGIN
            &AO.Movie_API.Film__(:INFO_$out$Text, :OBJID_$in$Text, :OBJVERSION_$in_out$Text, :ATTR_$in_out$Text, :ACTION_$in$Text); 
            END;
         }
      }
      event CancelMovie {
         inout       Document<Movie> Movie;
         PL/SQL-Block {
            BEGIN
            &AO.Movie_API.Cancel__(:INFO_$out$Text, :OBJID_$in$Text, :OBJVERSION_$in_out$Text, :ATTR_$in_out$Text, :ACTION_$in$Text); 
            END;
         }
      }
      event StartPostProduction {
         inout       Document<Movie> Movie;
         PL/SQL-Block {
            BEGIN
            &AO.Movie_API.Post_Produce__(:INFO_$out$Text, :OBJID_$in$Text, :OBJVERSION_$in_out$Text, :ATTR_$in_out$Text, :ACTION_$in$Text); 
            END;
         }
      }
      event ReleaseMovie {
         inout       Document<Movie> Movie;
         PL/SQL-Block {
            BEGIN
            &AO.Movie_API.Release__(:INFO_$out$Text, :OBJID_$in$Text, :OBJVERSION_$in_out$Text, :ATTR_$in_out$Text, :ACTION_$in$Text); 
            END;
         }
      }
   }
}

activityhandler MovieDetail {
   activity     MovieDetail;
   servicelevel Supported;
   methods {
      get<Movie>;
   }
}

activityhandler MovieViewer {
   activity     ViewMovie;
   servicelevel Supported;
   methods {
      custom ShowMovie {
         in          Alpha                 MovieId;
         return      Document<Movie>;
         transaction Supports;
      }
   }
   implementation {
      plsql GetEuMember {
         in          Text                  Countrycode;
         return      Text;
         PL/SQL-Block {
            DECLARE 
            BEGIN 
            :F_RESULT$Text :=&AO.Iso_Country_API.Get_Eu_Member(:Countrycode);
            END;
         }
         transaction Required;
         ServerImplementation "framework";
      }
   }
}

servicehandler MovieAccess {
   service      MovieAccess;
   servicelevel Supported;
   methods {
      get<Movie>;
      synchronize<Movie>;
   }
}

implementationhandler MovieUtil {
   methods {
      list<Movie>;
      list<Actor>;
   }
}

entitydocument Movie for Movie {
   attributes {
      use             Title             Text(100);
      use             ReleaseDate       Date;
      use             Genre             Enumeration<Genre>;
      use             CountryCode       Text(2);
   }
   aggregates {
      array           Actors            MovieActor(pk -> MovieId);
   }
}

entitydocument Actor for Actor {
   attributes {
      use             FirstName         Text(100);
      use             LastName          Text(100);
      use             BirthDate         Date;
   }
}

entitydocument MovieActor for MovieActor {
   attributes {
      use             CharacterName     Text(100);
      use             PerformanceRating Number(10);
   }
   aggregates {
      reference       Actor             Actor(ActorId -> ActorId);
   }
}

querydocument MovieList {
   SQL-Statement
   SELECT movie_id,
          title,
          release_date
   FROM   movie;
   attributes {
      key             MovieId           Number;
      use             Title             Text;
      use             ReleaseDate       Date;
   }
}

luwrapperdocument MovieAccesses {
   databaseview    "movie_info";
   databasepackage "Movie_API";
   attributes {
      key             MovieId           Number;
      use             Title             Text;
      use             ReleaseDate       Date;
   }
}

document MovieList2 extends MovieList {
   aggregates {
      array           Actors            MovieActor(pk -> MovieId);
   }
}

nonpersistentdocument AdditionalInfo {
   attributes {
      attribute       Description       Text;
   }
}

externaldocument FrameworkInfo "ifs.jsf.FrameworkInfo";

This page is generated from IFS Developer Studio at 2021-08-13 08:40.