|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
4 M3 ]2 O. ~$ T. T' {" c
Teamcenter ITK二次开发源码分享: 创建一个工作流, o& U& V5 R% Z$ H
5 L7 [2 S3 X1 O% r/ b2 r- }- /*HEAD CREATE_A_PROCESS CCC ITK */8 j& r" I$ x3 B- t& m2 h$ c% m
- #include <stdlib.h>* N+ g, j: a4 [8 [
- #include <TCcore/aom.h>
6 K) }. c& s; K/ v' N f3 K# o - #include <tc/emh.h>
' s" }( k0 l1 N; d) K - #include <epm/epm.h>; c0 |/ |: }# [: i% V
- #include <tc/tc.h># Q/ C- d9 M7 W- s9 s1 l2 E/ S
- #include <sa/tcfile.h>; o" U& \" D0 b: ] U$ K
- #include <itk/mem.h>
6 f& I9 n" l1 ]7 l5 r
( H- a$ [ R2 {- [" T- h9 E- #define EXIT_FAILURE 1
1 w( B9 d' w" F0 P. k/ ? - #define ERROR_CHECK(X) (report_error( __FILE__, __LINE__, #X, (X)))
/ M7 U2 V) |" N9 N, S - static void report_error( char *file, int line, char *function, int return_code)6 g2 y% i' ~$ l" J$ j2 F" F! k
- {% H: z Q8 m1 A% z. S
- if (return_code != ITK_ok)
* {0 e3 @3 Y. X# a - {
( r: P, C; J. R - char *error_message_string;
& q$ N( b8 T$ Q& L; W - EMH_get_error_string (NULLTAG, return_code, &error_message_string);
$ o8 X8 c% S( C7 t2 p" y3 B: S - printf ("ERROR: %d ERROR MSG: %s.\n", return_code, error_message_string);
6 T7 O+ n+ e* B5 |$ H/ d - printf ("FUNCTION: %s\nFILE: %s LINE: %d\n", function, file, line);; `4 g2 ] ]1 {+ p
- if(error_message_string) MEM_free(error_message_string);
' Y, v' a) B v# @# \7 { - printf("\nExiting program!\n");5 @( d9 b n8 |6 u5 m- ?
- exit (EXIT_FAILURE);
2 G& H, L$ m; ~! n, u2 v - }
( ?! Y" w7 w" ?& l - }
# e `" U2 P& j0 P& ` - ( A6 ~& e* W8 w4 h7 B
- #define EXIT_IF_NULL(X) (check_value(#X, (X)))$ Z' z7 T$ o& Z, r* M p
- static void check_value( char *function, int value )" R7 w3 N3 Q; [! y- H$ ?+ W# l
- {
) Y7 I# h. g# {( R8 ]3 Z9 W3 P- I - if (value == 0)% c9 h. s& m# z+ X- x
- {- @5 P/ w$ h' y4 U. b' D8 F
- printf ("\t%s is NULL\n", function);8 H+ V) @; w+ |' d1 q$ y
- printf("\nExiting program!\n");
# u2 N% T9 ?* j$ E i+ c$ ~9 r$ ] - exit (EXIT_FAILURE); / q* O/ L5 u' G& X5 p" N
- }& C* @' Z i0 w! @, p' H& B
- }
# q8 M* Z6 T c* p
m& m; J9 @4 P0 n. k* x3 J
1 K' r' G8 `. ^% d/ E" x o- static void do_it(void)5 U0 D0 w6 f5 p% i* o! o
- {) x. g% T4 f$ Z. d6 B: V
- int
: a( l1 m3 ^& [ r, O - attach_types[1] = {1};
8 j; C# P9 h( P$ E0 ~' C - tag_t
/ p: _1 X: ?7 D" T9 y4 ~6 q9 Y/ E - rev = NULLTAG,
6 a) H, Y @& y. Q, d) [ - process_template = NULLTAG, * w3 V* }1 @; m- S, s
- process = NULLTAG;
5 r9 I! `9 Q3 X. t/ d
% ^% f6 I/ q, L2 {" ^2 i- ERROR_CHECK( ITEM_find_rev("000206", "A", &rev) );. u. R3 m) g0 {5 b
- EXIT_IF_NULL( rev );
0 \. _! v! u$ y6 w" j
$ w$ M; l I0 d' V- ERROR_CHECK( EPM_find_process_template("oneStepWithStatus", &process_template) ); & Y: n: s8 I8 r, a
- EXIT_IF_NULL( process_template );+ I7 i2 ?. [0 q5 I6 j
$ ]4 l, }7 Z* h9 o* f+ u- 0 u A1 _ M9 N: U8 `* i9 C9 Q
- ERROR_CHECK( EPM_create_process("5421377", "desc", process_template, 1, &rev, ; [% a$ U! M* Z% ~& u
- attach_types, &process) );
1 d/ B+ _+ Y* j; H - + ^9 r8 d ~4 s' W2 G# G
- EXIT_IF_NULL( process );( I& A4 K+ U4 o$ }/ F2 Q% E, R% `2 @8 W
- }
" i, e& K( {0 F! B
8 P9 H/ e$ w5 f5 c. s8 U- int ITK_user_main(int argc, char* argv[])/ o) e* X4 T6 s# x" D+ C
- {/ J( Y7 T) d$ k' b
- int
% Q; `" l% @0 Q+ @. T3 x - status = 0;
8 ?% D; Y6 O, E4 w - k% ]2 m9 R+ T% M7 I! U" S3 g
- ITK_initialize_text_services( ITK_BATCH_TEXT_MODE );
5 M, N3 t# p) D- H% _3 S/ d$ m% t% C - status = ITK_auto_login();
0 L- t# g( r$ G -
4 y5 n8 J O* X. L - if ( (status != ITK_ok)) printf("\nLogin Failed!\n\n");
& L& z; n @$ V8 S" r - else$ V5 r) h7 d3 }8 j5 V' {# E9 _
- {
) F6 k4 R2 @2 P8 w - printf("\nLogin successful!\n\n");
$ `$ z/ u" w4 \' G9 L - ITK_set_journalling(TRUE);
! ]' `2 m$ |1 }8 T* _ - do_it();/ J8 e3 p8 `& D# x$ b( m4 L9 B
- }
; `3 [" u% K( e2 q - ITK_exit_module(TRUE);6 G) D/ z- k" J8 ~6 f: |% N |: M
- return status;
: {9 H: v7 H; T! \ - }
复制代码 ' j( A, f7 c9 W! Q$ k
4 Z% f/ z9 k+ ^2 L7 @- M% C, c3 h
. I* R! P/ a/ [7 e0 \2 x+ Y |
|