|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
) g: i \* |7 H$ l9 E- x, X5 E0 aTeamcenter ITK二次开发源码分享: 创建一个工作流$ J3 N- j! S5 m. o' N- J. H
, y5 E) `8 T" X S+ h# t- /*HEAD CREATE_A_PROCESS CCC ITK */
1 D' H5 L' ^! `' } m& `2 Y# K - #include <stdlib.h>( O3 B* t. _" Q: x8 F
- #include <TCcore/aom.h>
3 w5 f8 L4 Q- K* { - #include <tc/emh.h>
5 V" [0 O/ a0 b& p - #include <epm/epm.h>
) @/ z/ r' a9 A8 G% n4 a - #include <tc/tc.h>: E& H4 H* J2 k* Z5 i% A/ |3 }
- #include <sa/tcfile.h>: G7 {& B @/ h- a9 h c
- #include <itk/mem.h>
$ A0 a0 Q6 ]# |, e$ x$ `+ e
( m7 C7 R/ F! f- #define EXIT_FAILURE 1 : u# V2 K3 N. Y$ V+ e% Z
- #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
$ @. `! ~4 A. }- b! }% t - static void report_error( char *file, int line, char *function, int return_code)% d( f4 T( ]1 [/ x# ~1 O4 m
- {
0 Q: \4 L0 _# K, e - if (return_code != ITK_ok): s1 ?4 |6 q5 i5 _' F0 O
- {
, j" c6 [4 Z/ d - char *error_message_string;- L) {4 B F% _. g" z& Z
- EMH_get_error_string (NULLTAG, return_code, &error_message_string);
8 L+ i5 V+ U3 O7 P" @ - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);6 q) k; u+ {9 j
- printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);
( r/ O1 D+ S6 ?! F2 e6 n - if(error_message_string) MEM_free(error_message_string);. f. s' S9 C7 J! g
- printf("\nExiting program!\n");3 v! I3 w' o- N2 ~
- exit (EXIT_FAILURE); " U0 @6 e6 R7 @: ~3 I- }( i( j2 L6 W2 g0 o
- }% m) H8 k, ^' ^
- }* B% U( m, ~: M% L3 B
+ Q, e+ E# B7 d% ^) V3 J- #define EXIT_IF_NULL(X) (check_value(#X, (X)))* A# y3 l2 P1 L8 N; z/ \' q
- static void check_value( char *function, int value ); G$ [0 p* K: P/ u
- {
# ~ ?' M) p7 c - if (value == 0); Y* u! B# s# R% C! _7 v, N
- {
( w3 G2 Q; m( N - printf ("\t%s is NULL\n", function);
( l: u" u, ?3 o8 j+ s - printf("\nExiting program!\n"); a; r+ w5 q% ?' V4 C: U' V
- exit (EXIT_FAILURE); ! _6 B2 I8 n) K. y+ `3 Y
- } }/ W6 g( X1 @, u- A
- }7 e3 Y4 ^* a7 n8 ~- S
- 8 {6 c: ~/ } [
: |$ o8 o# V& Y/ N( e4 P- static void do_it(void)& F' ~$ T9 b4 h, s1 w+ n" p. I
- {5 o8 w8 o; A) t. F) L0 S
- int
! O# Z% o7 @2 O7 D# Q - attach_types[1] = {1};
8 @! J2 W( Z U, _5 K$ r - tag_t
. _1 i( F' n# p - rev = NULLTAG,
! ~- F6 w2 J* [9 _$ x - process_template = NULLTAG, ; r) T8 A) i' b* P; Z
- process = NULLTAG;
; H/ ~1 n2 o8 Y [ - 9 r. W* h5 `% _ g/ j& I* G$ w
- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );
3 D! ^7 C. d0 y8 Z: v; m: ? - EXIT_IF_NULL( rev );
4 d, m: t: T) e+ ~( H - 6 y3 J6 W* K0 c2 V9 P
- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) );
! h7 _: {6 H) }/ Y - EXIT_IF_NULL( process_template );
6 D" |" J# f) D; _" X3 [
6 Q/ d5 `! }* d S3 `
9 m& n# i' h& k* C4 ^$ v1 [8 m1 t- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev,
+ W0 w( P' A# ` - attach_types, &process) );
/ t7 q# ? j1 h' ?3 R
5 s! _$ L" q# ^& i/ C- EXIT_IF_NULL( process );
8 _% R6 \, Z0 [# _ - }
. \; n8 H" Q8 t% q# F - 8 O/ e7 ~' U6 ?! b$ g; Q
- int ITK_user_main(int argc, char* argv[]): Z, t5 X' ?2 E
- {
( h" H J* b6 |9 H. v7 n - int8 A; s) B. o. d5 c# N( @
- status = 0; 8 o+ H+ n) ^4 [
- , J1 y6 E6 A8 ~& Y' b
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
4 ?- y( V2 E( F9 o% `' d& R- j - status = ITK_auto_login();
% K* A1 {% D) G$ x -
" s& N* S5 X- p; A9 h% Z3 f - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");- T9 C1 G8 b% _
- else0 M9 F" P. n$ C5 w/ X
- {
% l, c$ ?2 Q" ~' p0 S/ W - printf("\nLogin successful!\n\n");! W2 y. w; |( s; D% }* d& r
- ITK_set_journalling(TRUE);
/ C# K& N: [/ E( D' ] - do_it();
, z0 _8 R9 S" K$ m# O; C/ R' r - }
N) R; J1 O! {( A - ITK_exit_module(TRUE);
: g6 |3 _1 F( T- F - return status;
2 @/ M" C& l& N1 J9 S K% z - }
复制代码 # M" t+ k! v* s( D5 A& z# v. l8 R
a. q* Y. G3 y; o7 b7 O/ _; C& I3 `* m2 [& ]4 W- i
|
|